use*_*364 6 java list ui-automation selenium-webdriver
我试图将一列元素保存到一个表结构的列表中,下面的表达式我需要执行一个单击操作来验证这些按钮.
代码:
我有价值Total_element = 37.
for(int start=0; start <= Total_element; start++)
{
int startn=start+1;
System.out.println(start);
List <WebElement> Element1 = new ArrayList<WebElement>() ;
try{
Element1.add(Naveen.findElement(By.xpath(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img")));
}catch(Throwable t){
System.out.println(t);
}
System.out.println(Element1.get(start));
System.out.println("The element" + start + "is :"+ Element1.get(start));
Naveen.findElement(By.xpath(Element1.get(start).toString())).click();
Naveen.findElement(By.xpath(".//*[@id='action']/a/span/div")).click();
System.out.println("The element" + start + "is :"+ Element1);
Thread.sleep(5000);
}
Run Code Online (Sandbox Code Playgroud)
错误:
当我尝试从列表中检索元素时,我得到以下输出:
[[FirefoxDriver: firefox on XP (586a8f1f-f784-4ae7-adf5-5f920dfad8e0)] -> xpath: .//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]
我说我的操作失败了.
实际上发生的事情意味着,返回类型
driver.findElemnt(By.xpath("xpath"));
Run Code Online (Sandbox Code Playgroud)
是 Web 元素。当您将上述代码添加到 时,ArrayList它将添加 WebElement。WebElement 包含有关
Driver Used- FirefoxDriver
Browser session value- 586a8f1f-f784-4ae7-adf5-5f920dfad8e0
locator used- xpath:.//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]
如果您尝试检索 Web 元素,它将返回所有这些内容。这就是您的情况所发生的情况,并且您在尝试单击时遇到错误。
您只需将Xpath locator单独添加到ArrayList. 它会起作用的。
尝试这个
ArrayList<String> Element1 = new ArrayList<String>();
Element1.add(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img");
driver.findElement(By.xpath(Element1.get(`startn`))).click();
Run Code Online (Sandbox Code Playgroud)