【WebDriver】解决ElementNotVisibleException方法总结
来源:互联网 发布:mac u盘安装win7教程 编辑:程序博客网 时间:2024/05/20 08:45
1、首先排除是否是页面未加载完成的问题。页面响应时间比较慢,导致定位的元素还没加载出来,就会报错ElementNotVisible,这时可以在代码里加上一定的等待时间,如:Thread.sleep(3000) 。
2、其次排除是否是定位有问题,可以用chrome浏览器的xpath healper工具来验证
如上图,写的xpath能够定位到页面中相应的元素,定位到的元素黄色显示。
3、如果用xpath healper确定能定位到元素,但是跑用例的时候还是报元素不可见异常,这可能是由于用@class属性来定位,特别是class中含有复合类的定位时,也可能会报这个错误,这时可以用其它标签或属性来定位,也可以用xpath的绝对路径来定位
4、上面两步还不能解决的话,就可以检查该元素的样式或父级及以上元素是否含有不可显示属性,需要检查元素是否具备如下特性:
visibility!= hidden
display != none (is also checked against every parent element)
opacity != 0 (in rc2 this is no longer checked for clicking an element)
height and width are both > 0
for an input, the attribute type != hidden
如果有不符上面的特性之一,那么就用js脚本来处理,用js操作元素参考博客:http://blog.csdn.net/galen2016/article/details/56847545
5、还有一种情况,就是选取元素的时候,可能存在两个相同的,但一次只会用一个,这两个区别就有一个样式的属性是不可见的,这个时候选取元素时要去掉不可见属性,如下例子:
如上图,启用流程按钮滑到右边时,该元素增加了display:none属性,此时如要向左滑可以如下方法来定位
WebElement label = driver.findElement(By.xpath(“//div[@class=’el-switch__label el-switch__label’ and not(contains(@style,’display:none’))]”));
6、最后,可能是编写脚本流程没有按照正常的操作步骤来进行,导致操作的元素没有在当前页面。
阅读全文
1 0
- 【WebDriver】解决ElementNotVisibleException方法总结
- ElementNotVisibleException
- Selenium webdriver 元素定位方法总结
- webdriver报不可见元素异常方法总结
- webdriver知识点总结
- webdriver知识点总结
- webdriver+selenium面试总结
- selenium webdriver 学习总结
- webdriver 截图公用方法
- webdriver 数据库验证方法
- selenium Webdriver 封装方法
- webdriver 截图公用方法
- webdriver元素定位方法
- webdriver窗口最大化方法
- WebDriver的常用方法
- selenium webdriver 常用方法
- WebDriver模拟输入方法
- webdriver-webelment接口方法
- POJ 2155 Matrix 树状数组
- nginx安装
- 关于电脑连不上WiFi,但可以连上网线的解决办法
- 这几天的总结
- openfire xmpp 通过presence service判断用户是否在线
- 【WebDriver】解决ElementNotVisibleException方法总结
- Memcached-1.4.4-14 For Win32 or Win64
- 【SQL两表关联级联】两张表关联,统计级联数量ORACLE
- 非空判断的个人理解
- 基于内容的推荐算法(推荐系统)(四)(完结,不填坑了
- poj 1932(最长路Bellman_Ford
- CentOS 7下安装Mysql
- hdu 2546-饭卡
- Linux笔记(2)-目录树结构