我在页面上有一个元素
<a data-cke-saved-name name></a>
我想检查页面上是否存在此元素? 我试过这种方式
WebElement link = null;
try {
link = Main.s_driver.findElement(By.tagName("data-cke-saved-name name"));
System.out.println("OK");
} catch (NoSuchElementException e) {
System.out.println("Something went wrong");
}
但它不起作用。有没有其他方法来检查这个元素?
答案 0 :(得分:0)
我曾经使用过一些时间为我工作
if(driver.findElement(By.tagname("value"))!= null){
System.out.println("OK");
}else{
System.out.println("Not there");
}
Howerver try.. catch()
也可以检查现有元素,好像不存在然后它会抛出异常
答案 1 :(得分:0)
找到答案。在这种情况下,我需要通过By.xpath
指定标记为空link = Main.s_driver.findElement(By.xpath("//a[contains(@data-cke-saved-name, '')]"));
答案 2 :(得分:0)
如果在检查元素存在后不需要使用该元素,请使用期望的条件类。
bool exists = ExpectedConditions.presenceOfElementLocated(
By.CssSelector("[data-cke-saved-name='name']"));
如果确实需要在查明元素是否存在后使用该元素,那么您需要回退到使用driver.findElement。我要先检查它是否存在,要么写一个webdriver等待轮询,直到driver.findElement没有抛出异常。
请记住,数据属性计为css选择器。因此,您可以使用CssSelector By代替较慢的XPath By:)