我正在努力获得所有elemet和他们的价值观。 我有一张桌子上有几个项目(IOS)
表中的所有项目都具有相同的名称但值不同,而我正在尝试使用
一次尝试获取元素List<WebElement> l = driver.findElements(By.name(name));
然后通过列表迭代并通过
拉取值for(int i =0; i < l.length; i++){
String val = ((MobileElement) l.get(i)).getAttribute("value");
}
我只在第一次迭代时获得正确的值(第一个元素),其他所有值都返回空值......
如果我将代码更改为:
//1
List<WebElement> l = driver.findElements(driver, By.name(name));
String val = ((MobileElement) weList.get(0)).getAttribute("value");
//2
l = driver.findElements(driver, By.name(name));
val = ((MobileElement) weList.get(1)).getAttribute("value");
//3
l = driver.findElements(driver, By.name(name));
val = ((MobileElement) weList.get(2)).getAttribute("value");
我得到了正确的值。
似乎每次我尝试访问它时都需要拉取元素。 这是一个错误,还是我错过了什么?
答案 0 :(得分:0)
for(int i =0; i < l.length; i++){
if(l.get(i)).instanceOf(MobileElement)){
String val = ((MobileElement) l.get(i)).getAttribute("value");
println val;//syso in Java
} }
当你使用driver.findElements(By.name(name));
U获得与名称相匹配的所有元素时,它就起作用了。
但是当U使用if(l.get(i)).instanceOf(MobileElement))
U时只对元素进行操作,那就是MobileElement的实例。如果没有它,就有可能将null或其他奇怪元素写入val,然后休息不起作用。