Selenium提高:JS操作和cookie处理

2021-11-22 14:22:25 浏览数 (1)

上一篇基础篇: https://blog.csdn.net/weixin_43582101/article/details/90082023

还是以百度为例。

调用JavaScript:

执行JS一般由两种场景:

  • 一种是在页面上直接执行JS
  • 另一种是在某个已经定位的元素上执行JS

隐藏百度一下按钮:

弹出新窗口的情况:

在编写自动化程序的时候,会遇到弹出新窗口的情况,而程序总是默认在第一个窗口页定位元素,这样,就会定位不到元素,程序报错。

在百度登录这里,如果点击立即注册,会重新打开一个新的页面。因为在 a标签 的 target 属性规定了浏览器将打开一个新的窗口。

所以我们不想弹出新窗口,就需要先删除target属性。

先给新闻加上跳转新页面的属性。再删除掉。

控制浏览器滚动条:

百度滚动条:

Cookie处理

添加一个cookie:遍历所有cookie

输出结果:

获取对象的属性:

验证码问题:

对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型有很多。有字母数字,汉字,算术题,或者滑块,语音等等。对于测试人员来说,不管是进行性能测试还是自动化测试都是很棘手的问题。下面简单说一些处理验证码的方式。

验证码识别技术:

  • 可以通过 python-tesseract 来识别验证码。Python-tesseract是python的光学字符识别(OCR)工具。也就是说,它将识别并“读取”嵌入图像中的文本。然而目前任何一种验证码识别技术,准确率都不是100%。

记录cookie:

  • 通过向浏览器添加cookie可以绕过登录的验证码,这是很有趣的一种解决方案。我们可以在用户登录前,通过 add_cookie() 的方式,将用户名密码写入浏览器cookie,再次访问登录系统链接将自动登录。

使用cookie进行登录的难点,是如何获得用户名和密码的name,如果找不到name,就没办法继续操作。可以通过get_cookies()来获取登录的cookie信息。

滑块模拟拖动:

  • 可使用之前说的操作鼠标事件的方法,actionchines来进行滑块拖动操作,这个不详细说了,可以看我关于滑块的文章 https://blog.csdn.net/weixin_43582101/article/details/89737915

Webdriver原理:

0 人点赞