java - getAttribute("value") 返回 0
问题描述
我想单击列表中的元素。我正在使用 getAttribute("value") 来获取文本,但它返回 0,因此它没有单击元素。请帮忙。
DOM 结构
<ol class ="class1">
<li value="foo1" class="class2">
<li value="foo2" class="class2">
</ol>
Xpath:
@FindBy(xpath = "//ol[@class='class1']/li")
List<WebElement> tagList;
我已经尝试过 getText() 但它会返回文本以及未知字符,因为该元素具有与文本一起的图标。
这是我的代码
public void selectTag() {
addReservationBtn.click();
tags.click();
for(WebElement li : tagList) {
// System.out.println(li.getAttribute("value"));
if (li.getAttribute("value").equalsIgnoreCase("foo2")) {
li.click();
break;
}
}
解决方案
您正在使用 @FindBy
它只返回给定定位器找到的第一个元素。用于@FindBys
获取给定定位器找到的所有元素。
由于之前的答案是错误的,我已经删除了它,但为了澄清评论而保留了它。
您可以直接获取第二个元素,而无需使用 for 循环
@FindBy(xpath = "//ol[@class='class1']/li[@class='class2']")
如果没有找到属性,则该getAttribute()
方法返回null
,当有属性但不包含任何值时,该方法返回空。
推荐阅读
- java - 如何在java中的一行中将APIException消息包装在数组中
- c++ - C ++我如何覆盖类中的 << 运算符
- python - 如何使用 SQLAlchemy 和 SQLite3 存储字典
- laravel - Laravel 7.x 在监听器中使用构造变量调用控制器方法
- java - 堆内存超过阈值后的 Java 垃圾收集
- extjs - 无论如何可以从EXTJS中的实用程序类动态访问对象吗?
- html - 将自定义 HTML 表单链接到 Google 表单(如何处理日期输入?)
- java - Lambda 函数退出失败
- wordpress - 如何在 WPForms 插件表单 WordPress 中禁用滚动效果
- mongodb - Mongodb sh.status() 显示不存在的数据库和分片