【发布时间】:2015-02-23 19:37:56
【问题描述】:
我正在尝试获取所有元素及其值。 我有一张桌子,里面有几个项目(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");
我得到了正确的值。
似乎每次我尝试访问它时都需要拉取该元素。 这是一个错误,还是我错过了什么?
【问题讨论】:
-
你是否检查过是否可以转换为移动元素(通过 instanceof)?
-
有可能,正如我所描述的,只有当我为我拉动的每个元素执行“findElements”然后我有正确的元素值时,我才能拉动元素。如果我只执行一次 findElements,然后尝试迭代,我会得到一个空值。
-
显示迭代代码。
-
for(int i =0; i
-
检查上面的代码并发布结果
标签: selenium-webdriver appium getelementsbyname