1-Selenium简介:Selenium是一个用于web自动化测试的工具,Selenium测试直接运行在浏览器中,就好像一个真正的用户在操作一样, 支持大部分主流的浏览器,包括IE(7,8,9,10,11),Firefox,Safari,Chrome,Opera等。
我们可以利用它来模拟用户点击访问网站,绕过一些复杂的认证场景
通过selnium+驱动浏览器这种组合可以直接渲染解析js,绕过大部分的参数构造和反爬。
注意事项:
新版本的Selenium已经不在支持phantomjs,原作者也已经放弃维护该项目了。
还有在做爬虫的时候尽量不要用这种方法,Selenium+浏览器的组合速度慢,应付不了数据量比较大的爬取以及并发爬取。并且很吃电脑资源。
2-Selenium配置
Selenium安装非常简单,直接pip就可以搞定: pip install selenium
使用selenium驱动chrome浏览器需要下载chromedriver,而且chromedriver版本需要与chrome的版本对应,版本错误的话则会运行报错。
Chromedriver下载地址:https://chromedriver.storage.googleapis.com/index.html
Windows: 下载对应版本的chromedriver解压后,将文件移动到一个配置了环境变量的文件夹中,例如Python安装文件夹
Linux/Mac: 解压后,将文件移动至/usr/local/bin目录中
3-基本使用
1-元素选取
在一个页面中有很多不同的策略可以定位一个元素。我们可以选择最合适的方法去查找元素。Selenium提供了下列的方法:
除了以上的多种查找方式,还有两种私有方法集成了上面的所有的查找方法,让我们更方便的使用
其中的第一个参数可以选择使用查找的方法,By.xxx 使用xxx方式解析,解析方法如下:
注:By对象导入: from selenium.webdriver.common.by import By
D = “id”
XPATH = “xpath”
LINK_TEXT = “link text”
PARTIAL_LINK_TEXT = “partial link text”
NAME = “name”
TAG_NAME = “tag name”
CLASS_NAME = “class name”
CSS_SELECTOR = “css selector”
4-窗口/页面/弹窗切换
1-窗口切换
用selenium操作浏览器如果需要在打开新的页面,这个时候会有问题,因为我们用selenium操作的是第一个打开的窗口,所以新打开的页面我们是无法去操作的,所以我们要用到切换窗口:既handle切换的方法
*Window_handles的顺序并不是浏览器上标签的顺序
尽量避免多标签操作