网页的元素是以li的形式,我用了各种方法都定位不到这个元素,求高人指点
网页的元素是以li的形式,我用了各种方法都定位不到这个元素,求高人指点最简单的方法,用QTP录制一下操作脚本,看专家模式,代码里是怎么定位的。 用name、id等都不方便定位的话,可以试一下Xpath 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加载的情况
https://www.jianshu.com/p/de5e779048de 使用xpath定位 匹配文字 使用xpath定位
页:
[1]