java - 无法从公共 X 路径中检索值
问题描述
我需要显示来自共享公共 Xpath 的多个 Web 元素的文本。
下面是我使用的代码:
List<WebElement> cmtnames =driver.findElements(By.xpath("//*[@id='issue_actions_container']/div/div/div/div[2]/a"));
System.out.println(cmtnames.size());
List<String> cmtlist = new ArrayList<String>();
for(int u=0;u<cmtnames.size();u++)
{
cmtlist.add(cmtnames.get(u).getText());
System.out.println(cmtnames.get(u).getText());
}
代码说明: 由于 Xpath 有多个元素,我使用 List of 来存储它并将这些 Web 元素文本存储在一个数组中。这些 web 元素的大小显示,但在运行期间,它只显示前两个元素值,第三个显示为空白。
注意:当我将窗口的缩放级别从(100 到 90)降低时,上述场景可以正常工作,但是降低这个缩放级别似乎并不是一个战略解决方案,因为 Xpath 可能包含超过 3 个 Web 元素因此,不可能定义满足所有此类场景的准确缩放大小。请建议我一个更好的解决方案。
解决方案
尝试:
Actions action = new Actions(webdriver);
WebElement element = driver.findElement(By.xpath("//*[@id='issue_actions_container']/div/div/div/div[2]/a"));
action.moveToElement(element).build().perform(); // to move to the element
List<WebElement> cmtnames =driver.findElements(By.xpath("//*[@id='issue_actions_container']/div/div/div/div[2]/a"));
for(WebElement e : cmtnames ){
System.out.println(e.getText()); // to print all the elements
}
推荐阅读
- nuxt.js - 如何使用 Vuetify 和 Nuxt 覆盖字体粗细
- javascript - 非全屏时的 Three.js 光线投射
- sql - 我们可以使用外键作为主键以及下面的另一个属性吗?
- javascript - Swagger-JSdoc 不适用于 Node.JS 14.15.4 错误“ERR_REQUIRE_ESM”
- django - 如果已经创建了 django,如何停止创建视图
- docker - 如何使用 conda 在无法通过 ssh 隧道访问互联网的 docker 容器中安装软件包
- windows - powershell 删除除最后三个以外的所有文件夹
- android-recyclerview - 如何对 RecyclerView 项目进行分页?
- javascript - 将矩阵划分为子矩阵(Javascript)
- c# - Rider 中的输出控制台在哪里?