Python3 Selenium定位不到元素常见原因及解决办法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python3 Selenium定位不到元素常见原因及解决办法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1649字,纯文字阅读大概需要3分钟。
内容图文
Python3 Selenium定位不到元素常见原因及解决办法
一、问题
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况:
报错信息: no such element: Unable to locate element: {"method":"xpath","selector":"xpath"}
二、分析以及解决方案
1,原因一以及解决方案
(1)原因:
Frame/Iframe原因定位不到元素:这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。
(2)解决方案:
如果iframe有name或id的话,直接使用switch_to_frame("name值")或switch_to_frame("id值")。如下:
driver=webdriver.Firefox() driver.get(r'http://www.126.com/') driver.switch_to_frame('x-URS-iframe') #需先跳转到iframe框架 username=driver.find_element_by_name('email') username.clear()如果iframe没有name或id的话,则可以通过下面的方式定位:
#先定位到iframe elementi= driver.find_element_by_class_name('APP-editor-iframe') #再将定位对象传给switch_to_frame()方法 driver.switch_to_frame(elementi)如果完成操作后,可以通过switch_to.parent_content()方法跳出当前iframe,或者还可以通过switch_to.default_content()方法跳回最外层的页面。
2,原因二以及解决方案
(1)原因:
Xpath描述错误原因:由于Xpath层级太复杂,容易犯错。但是该定位方式能够有效定位绝大部分的元素,建议掌握。
(2)解决方案:
<1>.可以使用Firefox的firePath,复制xpath路径。该方式容易因为层级改变而需要重新编写过xpath路径,不建议使用,初学者可以先复制路径,然后尝试去修改它。
<2>.提高下写xpath的水平.
3,如何检验编写的Xpath是否正确?
编写好Xpath路径,可以直接复制到搜狐浏览器的firebug查看html源码,通过Xpath搜索:如下红色框,若无报错,则说明编写的Xpath路径没错。 例如:find_element_by_xpath("//input[@id='kw']")
内容总结
以上是互联网集市为您收集整理的Python3 Selenium定位不到元素常见原因及解决办法全部内容,希望文章能够帮你解决Python3 Selenium定位不到元素常见原因及解决办法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。