java - 如何获取列表中 Web 元素的属性?
问题描述
我在 getAttribute() 上遇到错误,说无法解决方法。此方法通常适用于 WebElement 对象,但出于某种原因,这不是。这是代码也检查图片。
public void radioButtonUsingLable(String lablename) {
List<WebElement> radio = brower.findElements(By.xpath("//label[text() =
\"" + lablename + ":\"]/following-sibling::div[1]//child::input"));
for (WebElement element: radio) {
element.click();
delay(2000);
}
}
@Test
public void test1(){
radioButtonUsingLable("Radio Button");
List<WebElement> radio = brower.findElements(By.xpath("//label[text() =
\"Radio Button:\"]/following-sibling::div[1]//child::input"));
for (WebElement element: radio) {
String checked = radio.getAttribute("checked");
boolean isSelected = checked != null &&
checked.contentEquals("true") ? true : false;
Assert.assertTrue(isSelected);
}
}
解决方案
如果你看到类似的东西(在 OP 的照片中显示为方法名称的红色下划线),这可能意味着你认为你拥有的对象类型实际上不是。
在您的代码中,radio
实际上是一个列表。element
是该列表中的一个元素。你应该有:
for (WebElement element: radio) {
String checked = element.getAttribute("checked"); // change radio to element here
boolean isSelected = checked != null &&
checked.contentEquals("true") ? true : false;
Assert.assertTrue(isSelected);
}
为了帮助将来解决这个问题,请考虑选择更好的变量名称。例如,如果您有一个事物列表,请将变量设为复数。在这种情况下,它会给你一个线索,你不能调用一个名为orgetAttribute()
的变量。radioButtons
radioButtonsList
请记住,有时您可以拥有的最好的文档是干净的代码。
推荐阅读
- java - com.fasterxml.jackson.databind.exc.MismatchedInputException:缺少必需的创建者属性“状态”(索引 0)
- java - 无法专注于 Selenium 中的元素
- java - 使用参数从 java 运行 python
- c# - 如何在 SpinEdit 中显示浮点值?
- javascript - 如何在 Mongoose 查询中使用查询对象?
- amazon-web-services - 列的数据类型在粘合数据目录和 getCatalogSource 函数中有所不同
- python - 如何使用 Revit API 获取轴属性?
- mvvmcross - 使用此基本 ctor 从应用程序导航到基本视图模型的问题
- delphi - 在 Delphi 中对静态数组进行类型转换
- ios - 对于苹果的应用审查,我应该提供一个 testflight 的测试用户帐户吗?