WebDriverException元素在Selenium中不可单击

时间:2018-10-15 06:58:42

标签: selenium selenium-webdriver automated-tests testng

这是错误消息:

org.openqa.selenium.WebDriverException: unknown error: Element <div class="col-md-2 col-sm-2 hidden-xs days" id="lblday3">...</div> is not clickable at point (799, 308). Other element would receive the click: <div class="modal-body text-center">...</div>
  (Session info: chrome=69.0.3497.100)

大家好,以上异常在我的项目的ThankYou页面中引发。我已经尝试更改等待时间,但是它也不起作用。下面是我使用的方法。

public void Clickthankyou() throws InterruptedException
    {
        if(driver.findElement(By.xpath("//*[@id='id_appoint']/h2")).isDisplayed())
        {

        WebDriverWait wait = new WebDriverWait(driver, 6);  
        WebElement elem =wait.until(ExpectedConditions.elementToBeClickable(Dateselect));

        if(elem.isDisplayed())
        {
            elem.click();
        }

        Thread.sleep(2000);

        driver.findElement(Clickbook).click();
        }
        else
        {
            driver.navigate().back();
        }

1 个答案:

答案 0 :(得分:1)

此异常的基本原因是由于用户看到的浏览器窗口的ViewPort。 您需要滚动到特定元素,然后单击它。
关键是元素不可见,因此不适合单击。 好的,请使用此代码使用JavascriptExecutor进行修复,

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeAsyncScript('arguments[0].scrollIntoView(true)', driver.findElement(By.xpath("//*[@id='id_appoint']/h2")))
js.executeAsyncScript('window.scrollBy(0,-150)')

,或者您也可以使用Actions类执行相同的操作。

new Actions(driver).moveToElement(driver.findElement(By.xpath("//*[@id='id_appoint']/h2"))).click().perform();

可能的Debugging "Element is not clickable at point" error副本