我是 Selenium
的新手,需要检查 Selenium
Java
中的元素是否可点击,因为 element.click( )
在 link
和 label
上传递。
我试过使用下面的代码,但它不起作用:
WebDriverWait wait = new WebDriverWait(Scenario1Test.driver, 10);
if(wait.until(ExpectedConditions.elementToBeClickable(By.xpath("(//div[@id='brandSlider']/div[1]/div/div/div/img)[50]")))==null)
最佳答案
elementToBeClickable
用于检查元素是否可见并启用,以便您可以单击它。
ExpectedConditions.elementToBeClickable
返回 WebElement
如果预期条件为真,否则它将抛出 TimeoutException
, 它永远不会返回 null
。
因此,如果您使用 ExpectedConditions.elementToBeClickable
查找将始终为您提供可点击元素 的元素,则无需检查 null
条件,你应该尝试如下:-
WebDriverWait wait = new WebDriverWait(Scenario1Test.driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("(//div[@id='brandSlider']/div[1]/div/div/div/img)[50]")));
element.click();
正如您所说,element.click()
同时传递给 link
和 label
这并不意味着元素不可点击,它表示返回的元素 clicked
但可能没有事件通过点击操作对元素执行。
注意:- 我建议您始终首先尝试通过 id
、name
、className
查找元素> 和其他定位器。如果您在查找时遇到一些困难,请使用 cssSelector
并始终将 xpath
定位器放在最后,因为它比其他定位器更慢地定位元素。
希望对你有帮助..:)
关于java - 检查元素在 Selenium Java 中是否可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327049/