我尝试使用以下代码,
if(driver.findElement(By.xpath("(//button[@type='button'])[2]")).isDisplayed())
{
driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
}
else
System.out.println("Show more is not there");
在这里,如果有"显示更多"在应用程序中按钮,它正确执行但是当"显示更多"按钮不存在,它没有执行其他部分并显示"无法找到元素错误" 有人可以帮忙吗? 提前谢谢。
答案 0 :(得分:0)
当无法使用findElement查找和使用元素时,Selenium会抛出异常,因此您需要使用try / catch
块 -
try
{
if(driver.findElement(By.xpath("(//button[@type='button'])[2]")).isDisplayed())
{
driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
}
}
catch (ElementNotFoundException | ElementNotVisibleException | NoSuchElementException)
{
System.out.println("Show more is not there");
}
答案 1 :(得分:0)
有两种不同的方法可以确定页面上是否存在WebElement。第一个是像在另一个答案中一样捕获异常,或者制作如下列表:
List<WebElement> resultList = findElements(By.xpath("(//button[@type='button'])[2]"));
然后检查列表的大小:
resultList.size() = 0;
所以在你的例子中它将是:
List<WebElement> resultList = findElements(By.xpath("(//button[@type='button'])[2]"));
if(resultList.size() > 0){
driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
}else{
System.out.println("Show more is not there");
}