璐璐 发表于 2019-10-17 16:38:14

老师 网页的元素是以li的形式,我用了各种方法都定位不到这个元素?

本帖最后由 璐璐 于 2019-10-17 16:39 编辑

{:4_85:}: 老师 网页的元素是以li的形式,我用了各种方法都定位不到这个元素?
{:3_73:}::lol
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_element4四、使用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加载的情况https://www.jianshu.com/p/de5e779048de 如果这9种都不行,那就有可能非标准html组件 selenium 放弃定位。:lol{:4_89:}:好的,谢谢老师,我看一下。:handshake





jianxiaoyao 发表于 2019-10-17 17:57:15

活到老,学到老。

璐璐 发表于 2019-10-18 15:20:52

jianxiaoyao 发表于 2019-10-17 17:57
活到老,学到老。

哈哈哈哈哈哈,每天都有总结问题哦!!!
放心好了
感谢关注:victory:
页: [1]
查看完整版本: 老师 网页的元素是以li的形式,我用了各种方法都定位不到这个元素?