Selenium 自动测试软件的使用(自动化操作)

        Selenium是一个用于Web应用程序测试的工具,很多时候可以拿来做自动化的功能,解放一些重复的事情,比如自动注册、登录、获取信息、处理报表等等,都是可以自己去设计一个流程即可,使用它,先从安装和配置开始!!

pip install Selenium

由于是用于web应用,需要下载浏览器不同版本对应的驱动(ChromeDriver),以Chrome为例,先查看版本: chrome://version/

Google Chrome    94.0.4606.71 (正式版本) (64 位) (cohort: Stable)

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 89
Current browser version is 94.0.4606.71 with binary path C:Program Files (x86)GoogleChromeApplicationchrome.exe

查看到我的Chrome版本是94.0.4606(中间默认就升级了),所以以前下载的 ChromeDriver版本就低了,需要下载对应的版本:
ChromeDriver Mirror icon-default.png=L892https://npm.taobao.org/mirrors/chromedriver/
或者使用Firefox浏览器:https://github.com/mozilla/geckodriver/releases

配置环境变量
比如: E:MyChromeDriver, 把下载好的放进这个目录下
设置环境变量:系统变量–>Path,将“ E:MyChromeDriver”目录添加到Path的值中即可

安装和配置好之后就可以使用它了,使用它最关键在于如何定位元素

定位一个元素

定位多个元素 说明
find_element_by_id find_elements_by_id 通过元素id定位
find_element_by_name find_elements_by_name 通过元素name定位
find_element_by_xpath find_elements_by_xpath 通过xpath表达式定位
find_element_by_link_text find_elements_by_link_text 通过完整超链接的文本定位
find_element_by_partial_link_text find_elements_by_partial_link_text 通过部分链接的文本定位
find_element_by_tag_name find_elements_by_tag_name 通过标签定位
find_element_by_class_name find_elements_by_class_name 通过类名进行定位
find_element_by_css_selector find_elements_by_css_selector 通过css选择器进行定位

例,通过自动打开百度,自定义搜索并分别点开链接查看文章

如果是有框架的情况,需要进行切换才能定位,比如自动登录126邮箱

send_keys模拟键盘的一些示例

send_keys(Keys.BACK_SPACE) 删除键
send_keys(Keys.SPACE) 空格键
send_keys(Keys.TAB) 制表键
send_keys(Keys.ESCAPE) 回退键(Esc键)
send_keys(Keys.ENTER) 回车键
send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
send_keys(Keys.CONTROL,‘c’) 复制(Ctrl+C)
send_keys(Keys.CONTROL,‘x’) 剪切(Ctrl+X)
send_keys(Keys.CONTROL,‘v’) 粘贴(Ctrl+V)
send_keys(Keys.F1…Fn) 功能键 F1…Fn

另外有些网站禁止使用Selenium,可以通过js的window.navigator.webdriver来判断,如果是true就是代表通过Selenium在访问
熟悉js的可以使用下面这个来修改属性为false:

不想让浏览器显示“chrome正受到自动测试软件的控制”信息,可以通过选项进行隐藏

option = webdriver.ChromeOptions()
option.add_experimental_option(‘excludeSwitches’, [‘enable-automation’])
browser = webdriver.Chrome(options=option)
browser.get(‘https://126.com’)

如果是一些隐藏的标签或界面,这个时候可以模拟鼠标操作,比如百度的设置下面的搜索设置,就需要鼠标放上去再显示出来,下面设置每页20条的示例

对Cookies的操作

对js脚本的执行操作

截图操作

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树网络爬虫Selenium208939 人正在系统学习中

来源:寅恪光潜

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月9日
下一篇 2021年3月10日

相关推荐