在定位元素时,有时候会出现定位表达式正确,却找不到元素的情况,分析一下我遇到的几种原因。
1.定位表达式不唯一
定位元素时,我们会采取某种定位方式,有时会出现定位失败的情况,这是因为可能定位表达式不唯一
解决方法:如上图所示,
(1)打开开发者工具,按Ctrl+F,复制定位表达式,
(2)按右边的箭头查看相同字符串的位置,若也是另一元素的id,则用id定位会失败,更换定位方式
2. 内嵌页面Iframe,导致无法定位到Iframe的页面元素
因为webdriver每次只能在一个页面识别,页面中有frame,实际上是嵌入了另一个页面,因此需要先定位到相应的frame,对那个页面里的元素进行定位
举例:
这个时候定位frame页面里的元素就会失败
解决方法:
(1)如果iframe有name或id的话,直接使用switch_to.frame(“name值”)或switch_to.frame(“id值”)ÿ