【发布时间】:2019-01-10 07:05:08
【问题描述】:
所以,我有一个隐藏在警报下的元素。警报会持续 10 秒,之后用户可以单击该元素。这是我处理这种情况的代码:
WebElement create = driver.findElement(By.cssSelector("div.action_menu_trigger"));
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(create));
create.click();
但是一旦 WebDriver 到达这里我就会得到这个异常,似乎 Selenium 不关心等待方法:
org.openqa.selenium.ElementClickInterceptedException:
Element <div class="action_menu_trigger"> is not clickable at point (1710.224952697754,140) because another element <div class="noty_body"> obscures it
Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z'
我尝试过使用Thread.sleep(10000),它工作正常,但我不想使用睡眠。
【问题讨论】:
-
你好,是的,你的观察是正确的,elementToBeClickable 不会因为这个原因做它的工作stackoverflow.com/questions/51615508/…我在这里详细说明。
-
您说有一个警报...您是指 Javascript 警报还是 HTML 警报?鉴于您收到的错误消息,我假设一个 HTML 警报。到页面的链接在这里会有很大帮助。
-
嗨,这是另一个答案,它解释了我一直在说什么stackoverflow.com/questions/38327049/…