「selenium」基础
Selenium是一个用于Web应用程序测试的工具。
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Chrome,Opera等。
这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。
而用在爬虫上则是模拟正常用户访问网页并获取数据。
这里记录Selenium2
的基础知识。
Pre
安装chromedriver && selenium 库
一个简单的实例:
打开百度首页,在输入框中输入python,点击搜索
1 | from selenium import webdriver |
Chrome启动选项
在Selenium
中使用不同的Webdriver
可能会有不一样的方法,有些相同的操作会得到不一样的结果,这里记录的是Chrome()
的使用方法。
Chrome Options
一个Chrome的参数对象,在此对象中使用add_argument()
方法可以添加启动参数,添加完毕后可以在初始化Webdriver对象时将此Options对象传入,则可以实现以特定参数启动Chrome。
例:
1 | from selenium import webdriver |
常用启动参数:
启动参数 | 作用 |
---|---|
–user-agent=”” | 设置请求头的User-Agent |
–window-size=1366,768 | 设置浏览器分辨率 |
–headless | 无界面运行 |
–start-maximized | 最大化运行 |
–incognito | 隐身模式 |
–disable-javascript | 禁用javascript |
–disable-infobars | 禁用浏览器正在被自动化程序控制的提示 |
https://peter.sh/experiments/chromium-command-line-switches/
禁用图片加载
1 | prefs = { |
禁用浏览器弹窗
使用浏览器时常常会有弹窗弹出,以下选项可以禁止弹窗:
1 | prefs = { |
Chrome WebDriver
指定chromedriver.exe的位置
chromedriver.exe一般可以放在环境文件中,但是有时候为了方便部署项目,或者为了容易打包,我们可以将chromedriver.exe放到我们的项目目录中,然后在初始化Chrome Webdriver对象时,传入chromedriver.exe的路径。
1 | from selenium import webdriver |
Remote Webdriver
selenium.webdriver.remote.webdriver.WebDriver
这个类其实是所有其他Webdriver的父类,例如Chrome Webdriver
,Firefox Webdriver
都是继承自这个类。这个类中实现了每个Webdriver间相通的方法。