Java 如何获取列表中Web元素的属性?
getAttribute()上出现错误,表示无法解析方法。此方法通常适用于WebElement对象,但由于某些原因,并非如此。这是代码,也请检查图片Java 如何获取列表中Web元素的属性?,java,list,selenium,Java,List,Selenium,getAttribute()上出现错误,表示无法解析方法。此方法通常适用于WebElement对象,但由于某些原因,并非如此。这是代码,也请检查图片 public void radioButtonUsingLable(String lablename) { List<WebElement> radio = brower.findElements(By.xpath("//label[text() = \"" + lablename + ":\"]/f
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);
}
}
public void radioButtonUsingLable(字符串标签名称){
List radio=brower.findElements(By.xpath(“//label[text()=
\“+lablename+”:\“]/以下同级::div[1]//子级::输入”);
for(WebElement:radio){
元素。单击();
延迟(2000年);
}
}
@试验
公共void test1(){
RadioButton使用标签(“单选按钮”);
List radio=brower.findElements(By.xpath(“//label[text()=
\“单选按钮:\”]/following sibling::div[1]//child::input”);
for(WebElement:radio){
选中字符串=radio.getAttribute(“选中”);
布尔值isSelected=checked!=null&&
选中。contentEquals(“真”)?真:假;
Assert.assertTrue(isSelected);
}
}
如果您看到类似的情况(在OP的照片中显示为方法名的红色下划线),这可能意味着您认为您拥有的对象类型实际上不是
在您的代码中,radio
实际上是一个列表<代码>元素是该列表中的一个元素。你应该:
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);
}
为了帮助将来解决这个问题,请考虑选择更好的变量名。例如,如果您有一个事物列表,则将变量设为复数。在本例中,它会提示您无法对名为radioButtons
或radioButtonsList
的变量调用getAttribute()
请记住,有时最好的文档是干净的代码。@nafeez007-通常我们不建议您附上东西的照片-只需在问题中包含信息。但是,在本例中,我很高兴您这样做了,因为它帮助我更快地识别问题。如果您提供了有关异常堆栈跟踪和html dom结构的更多信息。如果能更快地识别,那就太好了。真正的getAttribute()是红色的,因为代码没有编译,所以不会有堆栈跟踪。谢谢Jason。我犯了一个愚蠢的错误