51Testing软件测试论坛
标题: 老师 网页的元素是以li的形式,我用了各种方法都定位不到这个元素? [打印本页]
作者: 璐璐 时间: 2019-10-17 16:38
标题: 老师 网页的元素是以li的形式,我用了各种方法都定位不到这个元素?
本帖最后由 璐璐 于 2019-10-17 16:39 编辑
: 老师 网页的元素是以li的形式,我用了各种方法都定位不到这个元素?
:
selenium元素定位不了,9种方式处理:
1、frame/iframe表单嵌套 解决方法:driver.switch_to.frame(id/name/obj)。
2、页面跳转到新的标签页,或者弹出的警告框等
解决方法1:driver.switch_to.window(window_handle)切换到新窗口。
3三、页面元素失去焦点导致脚本运行不稳定
解决方法:driver.switch_to.active_element
4四、使用Xpath或CSS定位
find_element_by_xpath("//标签[属性='值']")
5、页面还没有加载出来,就对页面上的元素进行的操作
因为加载元素延时造成的脚本失败,我们可以通过设置等待时间来提升自动化脚本的稳定性。解决方法1:WebDriverWait() 显示等待
6、元素被遮挡,不可用,不可见
解决方法1:driver.maximize_window() 由于窗口大小改变引起的页面元素布局发生变化,被测元素被遮挡,可以先将窗口最大化,再进行元素定位。
解决方法2:.is_enabled() 由于业务原因元素在某些情况下不可用(元素属性disabled,灰显),首先检查测试步骤是否符合业务逻辑,其次确认是否为业务流程上的Bug。
7、使用WebDriver调用JavaScript代码代替无法实现的功能
对于有些WebDriver没有提供的方法或者无法实现的功能,WebDriver提供了driver.execute_script()
8、WebDriver无法操作Windows控件
文件的普通上传和下载(参考How to auto save files using custom Firefox profile ?),可以通过.send_keys('本地路径')和find_element_by_partial_link_text('下载链接名').click()实现。
解决方法:对于插件上传,需要操作Windows控件的,可以通过安装AutoIt工具、编写脚本、保存为“.au3”文件、转换成“.exe”文件,再由自动化脚本os.system("D:\\upfile.exe")实现上传/下载。
9、资源是通过JavaScript加载的情况
如果这9种都不行,那就有可能非标准html组件 selenium 放弃定位。 :好的,谢谢老师,我看一下。
作者: jianxiaoyao 时间: 2019-10-17 17:57
活到老,学到老。
作者: 璐璐 时间: 2019-10-18 15:20
哈哈哈哈哈哈,每天都有总结问题哦!!!
放心好了
感谢关注
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |