在做Web自动化测试的时候经常会遇到元素定位不到的问题,结合实例总结一下原因和解决方法:
1.由于iFrame或者Frame的原因无法定位
实例:163邮箱登录页面,发现邮箱和密码的inputbox识别不到,登录btn也识别不到
初始脚本:
原因分析:
查看页面发现是这三个元素是嵌入的iframe里边的,WebDriver只能识别一个页面中的元素,对于嵌入页面的元素是无法直接识别到的,如下图:
扫描二维码关注公众号,回复:
9247890 查看本文章
![](/qrcode.jpg)
解决方案:
当元素处于iframe中,需要先跳转到iframe中才能被识别,如下:
调用_switch_to.frame()跳转进iframe。
driver.switch_to.parent_frame()切换到上一层frame
driver.switch_to.derault_content()跳回到最外层页面