java - 实现 selenium webdriver 时如何将表中的 WebElements 列表存储到列表中?

标签 java list selenium-webdriver ui-automation

我正在尝试使用以下表达式将一列元素保存到表结构的列表中,我需要对其执行单击操作以验证这些按钮。

代码:

我有 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);  
}

错误:

当我尝试从列表中检索元素时,我得到以下输出:

[[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"));

是网络元素。当您将上述代码添加到 ArrayList 时,它会添加 WebElement。 WebElement 包含有关

的信息

使用的驱动程序 - FirefoxDriver
浏览器 session 值 - 586a8f1f-f784-4ae7-adf5-5f920dfad8e0
使用的定位器 - xpath: .//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]

如果您尝试检索 Web 元素,它将返回所有这些内容。这就是您的情况,您在尝试点击时遇到错误。

您可以在 ArrayList 中单独添加 Xpath 定位器。它会起作用。

试试这个

 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();

关于java - 实现 selenium webdriver 时如何将表中的 WebElements 列表存储到列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14634126/

相关文章:

python - 如何使用用户输入附加列表

python - `yield from` 生成器与 `yield from` 列表性能

c# - string.split 返回一个 string[] 我想要一个 List<string> 是否有一个衬垫可以将数组转换为列表?

java - 请帮助查找 XPath :

java - 如何使 jsf @ManagedBean 也成为 @WebService

java - 可测试的Java代码: using model beans with a constructor

selenium - 如何在selenium webdriver中将控制从子窗口切换到父窗口?

python - 无法从网页解析 "First name"

java - Spring Hibernate 的数据库每用户连接

java - 如何通过 POST (Ajax) 发送 JSON 数据并从 Struts 2 操作接收 JSON 响应