51Testing软件测试论坛

标题: 报错element not visible [打印本页]

作者: cui_    时间: 2017-4-12 11:23
标题: 报错element not visible
各位大神,如图中显示利用xpath定位 xpath=//*[@id="navMenu"]/div/div/div/div/ul/li[4]/div,xpath=//*[@id="navMenu"]/div/div/div/div/ul/li[3]/div 运行代码,报错element not visible ,那位大神帮忙看一下,怎么修改才能让代码运行的时候不报错了

作者: 一抹红尘    时间: 2017-4-12 12:43
1你使用的xpath的语法好像错了,"/"表示从根节点选取,‘//’表示档中的 节点,而不考虑他们的位置,“@”表示选取当前属性;可以 试一下 xpath=//*[@id="navMenu"and @class="el-submenu"]
2.可以启用IDE录制,录制出来的脚本有xpath的用法
3、w3school 有的xpath用法说明
作者: 若尘_51    时间: 2017-4-12 14:07
1.首先确保当前页面id="navMenu"是唯一的。如果有多个需要更换下的xpath。
2.如果是唯一的话,排查下你的xpath路径有木有错。
3.如果没有错的话,一层层排查,看看到那层开始报:element not visible
xpath=//*[@id="navMenu"]/div
xpath=//*[@id="navMenu"]/div/div
......
xpath=//*[@id="navMenu"]/div/div/div/div/ul/li[4]/div
4.可以如2楼所说,使用火狐的工具 selenium IDE脚本录制工具,专门针对该页这几个步骤进行录制,再将录制结果导出来,如图:


作者: cui_    时间: 2017-4-12 14:29
若尘_51 发表于 2017-4-12 14:07
1.首先确保当前页面id="navMenu"是唯一的。如果有多个需要更换下的xpath。
2.如果是唯一的话,排查下你的x ...

就是录制的,而且navMenu也是多个的
作者: 若尘_51    时间: 2017-4-12 14:43
cui_ 发表于 2017-4-12 14:29
就是录制的,而且navMenu也是多个的

那就不能用id =navMenu,换一个吧,把id =navMenu那个节点的截个图看看。
作者: cq520131517    时间: 2017-4-12 15:08
因为这个定义对元素1也同样适用,而且元素1的位置在前面,所以就会出现element not visible。

解决:使用全路径的xpath(或者是往前定位,直到能区分出元素1和元素2)
作者: cui_    时间: 2017-4-14 10:26
若尘_51 发表于 2017-4-12 14:43
那就不能用id =navMenu,换一个吧,把id =navMenu那个节点的截个图看看。

这个是的,五个主菜单都是公用这个ID=navMenu





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2