51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1493|回复: 2

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

[复制链接]

该用户从未签到

发表于 2019-10-17 16:38:14 | 显示全部楼层 |阅读模式
本帖最后由 璐璐 于 2019-10-17 16:39 编辑

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

selenium元素定位不了,9种方式处理:
1frame/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 放弃定位。
:好的,谢谢老师,我看一下。






回复

使用道具 举报

  • TA的每日心情
    擦汗
    2020-3-18 13:27
  • 签到天数: 113 天

    连续签到: 3 天

    [LV.6]测试旅长

    发表于 2019-10-17 17:57:15 | 显示全部楼层
    活到老,学到老。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2019-10-18 15:20:52 | 显示全部楼层

    哈哈哈哈哈哈,每天都有总结问题哦!!!
    放心好了
    感谢关注
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 06:05 , Processed in 0.062943 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表