如何在找不到元素时保持代码运行

时间:2017-06-09 09:00:43

标签: java selenium

在那里,我的代码在找不到此元素时仍然运行错误

driver.findElement(By.xpath("(//span[@class='_soakw coreSpriteLikeHeartOpen'])")).click();
谁能帮助我吗?我希望其他代码继续运行,即使找不到这个元素我一直在互联网上寻找答案

2 个答案:

答案 0 :(得分:1)

您可以在find元素周围放置try catch块。在捕获blok之后,代码的执行将继续。 当没有找到元素时,函数findelement抛出NoSuchElementException。

// Set the timeout for searching an element
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
try 
{
    // Try to find the element
    driver.findElement(By.xpath("(//span[@class='_soakw coreSpriteLikeHeartOpen'])")).click();
} 
catch (NoSuchElementException e)
{
    System.out.println("Element Not Found");
}
// Continue

让我知道它是否有效或者您是否需要帮助。

答案 1 :(得分:0)

您也可以通过以下方式执行此操作:

List<WebElement> element= driver.findElements(By.xpath("//span[@class='_soakw coreSpriteLikeHeartOpen']"));

if(element.size()>0)
{
    System.out.println("Found");
}
else
{
        System.out.println("Not Found");            
}

重要提示:

  

FindElement() :它会抛出NoSuchElementException异常   找不到元素。

     

FindElements() :如果元素不存在或不可用   然后,页面返回值将是一个空列表。