gpt4 book ai didi

java - 使用 Selenium、TestNG、java 的 Arraylist 推送动态表行

转载 作者:行者123 更新时间:2023-12-02 01:52:06 26 4
gpt4 key购买 nike

enter image description here

driver.findElement(By.id("lnkLogin")).click();

WebElement cmp = driver.findElement(By.id("txtCompanySearch"));
cmp.sendKeys("Demo Company");

driver.findElements(By.xpath(".//*[@id=\"TenantTBL\"]/tbody/tr[5]/td")).get(0).click();

上面的代码对我有用,但它作为用于选择的静态 xpath 索引,但我想获取与我的 sendKeys 值匹配的所有行。

我已经尝试过,但不起作用

ArrayList<Integer> numbers = new ArrayList<Integer>();
By elems = By.xpath(".//*[@id=\"TenantTBL\"]/tbody/tr");
WebElement select = driver.findElement(elems);
List<WebElement> matches = select.findElements(By.xpath(".//*[@id=\"TenantTBL\"]/tbody/tr"));
List<String> currentVals = new ArrayList<>();
for (WebElement match : matches) {
currentVals.add(match.getText());
}

最佳答案

xpath 中使用 . 时,您正在使用当前上下文,因此

WebElement select = driver.findElement(By.xpath(".//*[@id=\"TenantTBL\"]/tbody/tr"));
List<WebElement> matches = select.findElements(By.xpath(".//*[@id=\"TenantTBL\"]/tbody/tr"));

相当于

List<WebElement> matches = select.findElements(By.xpath(".//*[@id=\"TenantTBL\"]/tbody/tr//*[@id=\"TenantTBL\"]/tbody/tr"));

基本上,您正在寻找一个作为其自身子元素的元素。直接定位元素即可

By elems = By.xpath(".//*[@id=\"TenantTBL\"]/tbody/tr");
List<WebElement> matches = driver.findElements(elems));

关于java - 使用 Selenium、TestNG、java 的 Arraylist 推送动态表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52812371/

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