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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    jvm基本结构和解析
    多态的意思
    java中对象的简单解读
    double类型和int类型的区别
    python 解析xml文件
    win10不能映射Ubuntu共享文件
    Qt程序打包
    Ubuntu boot分区文件误删,系统无法启动,怎么解
    ubuntu Boot空间不够问题“The volume boot has only 5.1MB disk space remaining”
    Ubuntu 分辨率更改 xrandr Failed to get size of gamma for output default
  • 原文地址:https://www.cnblogs.com/puresoul/p/14986629.html
Copyright © 2011-2022 走看看