gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:22 25 4
gpt4 key购买 nike

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

代码:

我有 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com