【发布时间】:2021-03-07 19:41:59
【问题描述】:
首先,我是一名负责处理 Selenium 的 Javascript 开发人员,我现在感受到 QE 所经历的痛苦,哈哈,所以我对 Java 的了解是基本的。我有以下 DOM 结构,我需要能够找到“链接名称 1”并单击它。对于不同测试中的其他链接,我也必须这样做。
<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...
}
根据文本值获取标签列表以便能够点击它们的最佳方法是什么?
【问题讨论】:
-
我可以从 HTML 示例链接中看到不同的文本。为什么要将它们收集在列表中,然后按单个文本单击每个?
-
我更新了标记。该页面实际上可以有数百个,它们是作为项目列表一部分的工具提示弹出菜单。我可以使用搜索框来隔离单个项目,所以你的想法会奏效,但如果我不能,其他情况也是如此,我想知道如何处理它。
标签: java selenium selenium-webdriver xpath webdriverwait