selenium
jxzdsw
这个作者很懒,什么都没留下…
展开
-
Selenium一些特殊情况的处理:失去焦点、点击不生效、长页面处理、先触发事件才能动态加载的元素、日期输入
Selenium一些特殊情况的处理失去焦点focus有时候click()或者send_keys(),没有反应。那是因为失去了焦点。使用driver. switch_to_active_element()或者driver.execute_script("arguments[0].focus();", element)解决。点击不生效的替代办法首先使用EC.element_to_be_clickable()确认元素是clickable的。然后可以尝试如下替代方法方法1:使用回车键代替。原创 2020-07-15 20:16:29 · 6878 阅读 · 0 评论 -
如何提升Selenium脚本执行稳定性,selenium定位不到元素,selenium操作不了元素,元素可靠定位,元素可靠操作,JS执行未完成,alert、frame、window可靠切换,新页面加载
如何提升Selenium用例执行稳定性使用selenium会发现很多稳定性问题,有时定位不到,有时操作不了。对于不熟悉selenium的人来说是很痛苦的。有些问题增加等待时间可以减少出问题的几率,但是出了问题就增加硬性等待时间会导致案例执行时间越来越长。所以在增加等待时,应该使用显示等待,或者封装出显示等待的效果,这样一来一旦条件满足就会立刻进行后续操作。通过合理的库的封装,既提高可靠性,又不会不合理的增加案例执行时间。有些问题需要特殊处理。这里我列出项目中遇到过的稳定性问题及其解决办法。将原创 2020-07-15 20:03:04 · 2685 阅读 · 0 评论 -
selenium弹窗处理,包括Javascript弹窗、HTML弹出层和Windows弹窗
弹窗处理Javascript弹窗Javascript中有3种弹窗:alert(只有一个确认按钮)、confirmation(有确认和取消两个按钮供选择)、prompt(需要输入内容)。无法使用selenium提供的find_element_by_xx()定位到alert中的元素。Selenium提供一组统一的API处理它们,代码形式上都当做Alert的实例来处理。alert = driver.switch_to_alert()切换到当前弹出的alert。关闭了alert之后,回到aler原创 2020-07-15 20:16:48 · 4966 阅读 · 0 评论 -
封装方法实现Selenium点击table指定行的某个单元格
在Web测试中常会遇到table,要操作的可能是其中的某一行。比如一张表显示商品信息,每一行显示一种商品,在每一行的末尾有删除按钮,想要删除指定ID的商品。这种需求常有遇到,而且这个操作涉及到xpath的一些用法,有些Page Object书写人员可能并不能轻松应对,所以我封装一个方法。实现如下。代码中虽然有些自研框架封装的API,但是不难使用原始的selenium API替换。def cl...原创 2020-04-26 12:55:50 · 2527 阅读 · 2 评论