Selenium
Selenium 的组成:
- WebDriver 对网站进行自动化操作,模拟人类行为
- WebDriver 的工作模式:WebDriver — Driver — 浏览器
- Driver 是指:ChromeDriver, GeckoDriver (Firefox) 等
- Grid 跨平台测试
用 Python 安装 Selenium:
$ pip install selenium
注意,运行 Selenium 之前,先要安装浏览器(Chrome)和浏览器驱动(ChromeDriver)程序。
示例代码
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--headless')
browser = webdriver.Chrome(
executable_path = "/usr/lib64/chromium-browser/chromedriver",
options = options,
service_log_path='/tmp/ch.txt')
browser.get('http://www.baidu.com/')
print(browser.title)
代码分析
一,ChromeDriver 程序的位置:
$ whereis chromedriver
chromedriver: /usr/bin/chromedriver /www/42as/pythonenv/bin/chromedriver
/usr/bin/chromedriver
是个软连接,指向 /usr/lib64/chromium-browser/chromedriver
— 代码里直接用的这个绝对路径,且其权限是普通用户 — 因此不需要用 --no-sandbox
选项。
二,监听端口:ChromeDriver 默认在 9515 端口监听。
三,通过 $ chromedriver --help
命令查看使用帮助:
--disable-dev-shm-usage
使用此参数可避免使用 /dev/shm 共享内存--log-level
的合法取值为 ALL, DEBUG, INFO, WARNING, SEVERE, OFF
四,如果有 DevToolsActivePort
错误,可能是没有安装 Chrome,用 yum 安装即可。
相关的软件和概念
- Mock browsers
- 模拟浏览器。
- HtmlUnit
- 一个 Java 无 GUI 浏览器。
- PhantomJS
- 基于 Webkit 的 headless 浏览器。自 2017 年 8 月以来就不再更新,缘故是 Google 发布了 headless 版本的 Chrome。