自动化测试工具selenium的使用,一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题。
Selenium简介
Selenium是一个Web应用的自动化框架,利用它,我们可以编写相关的自动化程序,让程序完全像人一样在浏览器里面操作Web界面,比如模拟鼠标点击、模拟键盘输入等等。不但能够操作Web界面,还能从Web中获取信息,并且相对来说,使用Selenium来获取信息更加简单,它的基本原理是我们编写自动化程序之后利用浏览器驱动直接对浏览器进行操作,因此原理上来说,只要我们用户能在浏览器上获得的信息使用Selenium都可以获得,在我们编写爬虫程序的时候,最经常使用的可能是requests了,可实际上在很多网站,它们不是静态网页,有很多东西并不在源代码中,这个时候如果继续使用它就需要使用很多前端的知识了,要对网页进行分析找出来真实的url,或者对相关js文件解密等等,需要我们掌握一定的知识并且需要进行分析,而如果使用Selenium,则就完全可以傻瓜式的抓我们想要的东西了哈哈哈哈,我觉得,除了速度慢一点,其它方面Selenium几乎无敌。当然,Selenium是一个自动化测试框架,它能做的远不止抓数据这么简单,究竟怎么使用,还是因人而异了。
环境准备
首先使用它肯定要先搭建环境,很简单,我们只需要Selenium这个库以及我们要使用的浏览器驱动即可。
安装Selenium库
以管理员身份打开cmd
输入:
pip install selenium
对了,在安装库的时候可以选择使用国内的一些镜像源,可以极大了提高下载速度,避免有时候连接不上下载失败等情况。具体教程非常简单,自行百度即可。
安装浏览器驱动
如果使用Selenium,浏览器驱动是少不了的,程序本身并不能直接对网页浏览器进行操作,必须要借助浏览器驱动,并且,你使用哪个浏览器,必须要安装对应的浏览器驱动,同时,安装的驱动还有版本区别,==一定要安装自己使用的浏览器版本被支持的驱动==
Selenium使用
导入
我们使用Selenium操控浏览器的话,只需要导入其中的Webdriver方法即可,顾名思义,Web老司机,有了它就够了。不过,有时候也需要使用其中的鼠标事件和键盘事件,也就是模拟鼠标操作和键盘操作,不过Webdriver里面以及自带了经常使用的鼠标点击和键盘输入字符等操作,因此鼠标事件和键盘事件还是因需而用吧,这里给出全部的导入方法。
#这是导入Webdriver类,一般使用有它就够了。
from selenium import webdriver
#这是导入鼠标事件,使用鼠标的复杂操作方法都包含在此方法内
from selenium.webdriver.common.action_chains import ActionChains
#这是导入键盘事件,使用键盘的复杂操作方法都包含在此方法内
from selenium.webdriver.common.keys import Keys
另外,强调一点,所说无绝对,如上面鼠标事件里面也包含了一些键盘的使用方法,这个的话在您深入使用的时候再自行了解吧。
相关方法
在Selenium中有很多很多可供我们使用的方法,在这里我仅根据经验及判断给出最常用的一些方法。
利用浏览器驱动建立一个webdriver对象
driver = webdriver.Chrome('D:\chromedriver_win32\chromedriver')
#注意,此例以Chrome浏览器为例,在如上语句中括号内参数可以为空,为空的话保证驱动的位置在python解释器的目录下,否则需要写入驱动所在位置,
#经过这条语句,driver即为一个webdriver对象,程序将自动打开一个Chrome浏览器。
打开要访问的网页
url = ''#这个为目标网址
#只需要对webdriver对象使用get方法即可打开要访问的网页
driver.get(url)
浏览器最大化最小化
#最大化
driver.maximize_window()
#最小化
driver.minimize_window()
控制浏览器前进后退
#前进
driver.forward()
#后退
driver.back()
设置浏览器的宽和高
#宽为400,高为800
driver.set_window_size(400,800)
刷新页面
driver.refresh()
以上这几个是常用的对浏览器操作的方法,操作对象都是webdriver对象,还有一些对元素操作的方法,也就是对界面里面目标元素操作的方法,既然要对界面操作,且界面远比这个窗口复杂的多,所以对目标元素的定位成为了重中之重,可以说,对元素的准确定位是会使用webdirver的核心。