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") 时,它会查找/ProductsRoute.do。如果没有找到它,那么它应该在那里中断。但问题是我得到了 java.lang.NullPointerException。
期望的是,它应该尝试找到 href/Products.do,如果它不存在,它应该在那里中断。如果它在/Product.do中,那么它应该执行下一个if。需要您帮助查找问题。谢谢大家!
最佳答案
可能的解决方案:
检查列表大小并确保元素存在
assertThat(list1.size() >0).isTrue()
在 if 条件之前给予一些等待时间
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
关于java - 使用 equalsIgnoreCase 时,if else 在 selenium webdriver 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182782/