selenium弹窗无法定位_抓紧收藏!Selenium无法定位元素的几种解决方案

预警此篇送学员真实高薪学历

即,

最长等待时间为5s,每隔1秒检查一次id=’kw’的元素是否被加载在DOM树里(并不代表该元素一定可见)。最常用的method是expected_conditions类提供的预期条件判断。

最长等待时间为30s,每隔1秒检查一次id=’someId’的元素是否从DOM树里消失,忽略默认异常信息NoSuchElementException 和指定的异常信息ElementNotVisibleException。此处匿名函数的用法具体参考Python语法。

解决方法2

 隐式等待。全局等待,对所有元素设置超时时间,等待页面的加载,因此只需要设置一次即可。这里的时间是最长等待时间(非固定等待时间)。

解决方法3

sleep(秒)线程等待。休眠固定的时间,使用时需要先引入time模块的sleep方法from time import sleep。

0 6元素被遮挡,不可用,不可见

解决方法1

由于窗口大小改变引起的页面元素布局发生变化,被测元素被遮挡,可以先将窗口最大化,再进行元素定位。

解决方法2

.is_enabled()由于业务原因元素在某些情况下不可用(元素属性disabled,灰显),首先检查测试步骤是否符合业务逻辑,其次确认是否为业务流程上的Bug。

解决方法3

对于属性不一定可见的元素,在定位前首先判断其属性是否可见,是否被隐藏。

解决方法4

由于布局不合理导致的元素被遮盖、或是元素本身缺失引起的无法定位问题属于Bug,可以提给开发让其改进。

0 7

使用WebDriver调用JavaScript代码代替无法实现的功能

对于有些WebDriver没有提供的方法或者无法实现的功能,WebDriver提供了方法来执行JavaScript代码。

解决方法

如果页面内容过长,窗口最大化也无法查看到所有元素,可以通过执行JavaScript脚本实现滚动条的拖动等动作。

以上语句实现了拉动页面到底部的功能,其中是JavaScript中用于设置浏览器窗口滚动条的水平和垂直位置的代码。

假设一个输入框可以通过id=’text’将其定位,却不能通过send_keys()输入文本内容,可以借助JavaScript代码来实现。

以上实现了HTML5视屏HTML DOM Video对象。

其中arguments是JavaScript的内置对象。因为将video对象传给了arguments,所以arguments[0]相当于JavaScript脚本的document.getElementsByTagName(“video”)。JavaScript不支持重载,使用arguments对象可以模拟函数重载效果。

0 8

WebDriver无法操作Windows控件

件的普通上传和下载(参考How to auto save files using custom Firefox profile ,可以通过实现。

解决方法

对于插件上传,需要操作Windows控件的,可以通过安装AutoIt工具、编写脚本、保存为“.au3”文件、转换成“.exe”文件,再由自动化脚本实现上传/下载。* 虽然这种方法可以解决文件上传、下载的操作问题,但是并不推荐。因为通过python调用exe程序并不在python的可控范围内,执行多长时间,执行过程是否出错,都无从自动化过程得知。

09 firefox安全性强,不允许跨域调用出现 错

错误描述:uncaught exception: [Exception… “Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]” nsresult: “0x80004005 (NS_ERROR_FAILURE)” location:

解决办法

Firefox 要取消XMLHttpRequest的跨域限制的话,第一是从 about:config 里设置 signed.applets.codebase_principal_support = true;(地址栏输入about:config 即可进行firefox设置);第二就是在open的代码函数前加入类似如下的代码:

不想错过就把我们设为星标吧!

第二步:点击右上角“···”

第三步:点击“设为星标”

ea8a6c3665d89f6d6b0a1bf57db098a1.gif

相关资源:漂浮截图工具-教育工具类资源

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月17日
下一篇 2020年10月17日

相关推荐