首先,我是一个javascript开发人员,负责处理selenium,我觉得qe现在经历的痛苦,lol,所以我对java的知识是基本的。我有下面的dom结构,我需要能够找到“linkname1”并单击它。我也将不得不做同样的其他链接在不同的测试。
<div class="some-container">
<div class="blah"></div>
<div>
<div>
<div class="common-class-name">
<a>Link Name 1</a>
</div>
</div>
<div>
<div class="common-class-name">
<a>Link Name 2</a>
</div>
</div>
<div>
<div class="common-class-name">
<a>Link Name 3</a>
</div>
</div>
</div>
</div>
<div class="some-other-container">
<div class="blah"></div>
<div>
<div>
<div class="common-class-name">
<a>Link Name 1</a>
</div>
</div>
<div>
<div class="common-class-name">
<a>Link Name 2</a>
</div>
</div>
<div>
<div class="common-class-name">
<a>Link Name 3</a>
</div>
</div>
</div>
</div>
这是我尝试过的方法之一,findelementswithwait基本上是一个实用函数,它使用findelements进行等待。这不管用。
List<WebElement> list = findElementsWithWait(By.className("common-class-name"));
for (WebElement element: list) {
WebElement el = element.findElement(By.tagName("a"));
String text = el.getText();
// other code would check for the proper text and click...
}
获得标签列表的最佳方法是什么,以便能够基于文本值单击它们?
2条答案
按热度按时间kiz8lqtg1#
尝试按链接文本搜索每个锚节点:
如果有多个链接具有相同的文本和唯一的祖先,那么请尝试通过xpath进行搜索
0qx6xfy62#
至
click()
在链接名为1的第一个链接上<div class="some-container">
你需要诱导webdriverwaitelementToBeClickable()
您可以使用以下定位器策略:xpath
:要创建文本为link name 1的链接列表,需要为
visibilityOfAllElementsLocatedBy()
您可以使用以下定位器策略:xpath
: