gpt4 book ai didi

java - 使用 equalsIgnoreCase 时,if else 在 selenium webdriver 中不起作用

转载 作者:行者123 更新时间:2023-12-01 09:56:22 25 4
gpt4 key购买 nike

try {
List<WebElement> list1 = driver.findElements(By.tagName("a"));

for (WebElement e : list1) {
if (e.getAttribute("href").equalsIgnoreCase("/ProductsRoute.do")) {
if (driver.findElement(By.id("buttonCheck++Check")).isDisplayed()) {
driver.findElement(By.id("buttonCheck++Check")).click();
ProductConfPageexceptionHandler(driver);
break;
}
else if (driver.findElement(By.name("Next")).isDisplayed()) {
WebElement nextBut = driver.findElement(By.name("Next"));
nextBut.click();
break;
}
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

问题是,当脚本执行 e.getAttribute("href") 时,它会查找/ProductsRou​​te.do。如果没有找到它,那么它应该在那里中断。但问题是我得到了 java.lang.NullPointerException。

期望的是,它应该尝试找到 href/Products.do,如果它不存在,它应该在那里中断。如果它在/Product.do中,那么它应该执行下一个if。需要您帮助查找问题。谢谢大家!

最佳答案

可能的解决方案:

  1. 检查列表大小并确保元素存在

    assertThat(list1.size() >0).isTrue()

  2. 在 if 条件之前给予一些等待时间

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

关于java - 使用 equalsIgnoreCase 时,if else 在 selenium webdriver 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182782/

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