zoukankan      html  css  js  c++  java
  • 【转】Selenium报错:Element is not clickable at point的解决办法

    最近在写Selenium Java脚本时遇到一个问题,登录进入系统之后,要点击左侧的一个菜单,但是执行到该语句时报下面的错误:

    Firefox中报错如下:
    org.openqa.selenium.ElementClickInterceptedException: Element

    is not clickable at point (115,358) because another element
    obscures it

    错误的意思是:无法点击这个元素,因为被另一个div掩盖(obscure)住了。

    Chrome 中报错如下:
    org.openqa.selenium.WebDriverException: unknown error: Element

    ...
    is not clickable at point (115, 358). Other element would receive the click:
    ...

    (Session info: chrome=67.0.3396.99)

    错误的意思是:无法点击这个元素,另外一个div元素接收了这个点击。

    经分析调试,以下方法可以解决此类问题。
    解决方法一:
    思路:先使用invisibilityOf等待掩盖的div消失不见,再使用elementToBeClickable等待要点击的元素达到可点击的状态。

    示例:

    //要点击的左侧菜单元素
    WebElement LeftMenu = driver.findElement(By.xpath("xpath"));

    //掩盖的div元素
    WebElement ObscureDiv = driver.findElement(By.xpath("//div[@class='el-loading-mask is-fullscreen el-loading-fade-leave-active el-loading-fade-leave-to']"));

    //使用显示等待,等待掩盖的div消失
    WebDriverWait wait = new WebDriverWait(driver,60);
    wait.until(ExpectedConditions.invisibilityOf(ObscureDiv));

    //等待左侧菜单到可点击状态
    wait.until(ExpectedConditions.elementToBeClickable(LeftMenu ));

    //之后再执行点击
    LeftMenu .click();
    解决方法二:
    思路:因为掩盖的div可能会在进行一些操作后,会消失,所以登录后执行一个页面刷新的操作,此div即可消失。

          再等待左侧菜单到可点击状态即可。
    

    示例:

    //登录之前的代码

    //登录后加时间等待,并且进行一次页面刷新
    Thread.sleep(3000);
    driver.navigate().refresh();

    //要点击的左侧菜单元素
    WebElement LeftMenu = driver.findElement(By.xpath("xpath"));

    //等待左侧菜单到可点击状态
    WebDriverWait wait = new WebDriverWait(driver,60);
    wait.until(ExpectedConditions.elementToBeClickable(LeftMenu ));

    //之后再执行点击
    LeftMenu .click();

    转载地址:https://www.cnblogs.com/shengs/p/11203221.html


    作者:Glen.He
    出处:http://www.cnblogs.com/puresoul/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Tomcat部署项目
    正则表达式
    文件的上传和下载
    实现扫码登陆
    onepill Android端
    部署SpringBoot到阿里云
    Gson
    HTML自动刷新页面
    Spring Data JPA根据属性名查询
    Spring Date JPA实现增删改查
  • 原文地址:https://www.cnblogs.com/puresoul/p/14986629.html
Copyright © 2011-2022 走看看