在那里,我的代码在找不到此元素时仍然运行错误
driver.findElement(By.xpath("(//span[@class='_soakw coreSpriteLikeHeartOpen'])")).click();
谁能帮助我吗?我希望其他代码继续运行,即使找不到这个元素我一直在互联网上寻找答案
答案 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()
:如果元素不存在或不可用 然后,页面返回值将是一个空列表。