Selenium作为浏览器操控工具,在自动化测试和爬虫方面都应用广泛。这篇先说下安装和基本使用。
1. python 安装 selenium 库
我本地的python 版本是 3.9 ,用pip 安装下 selenium
pip install selenium
安装完成后,我们进入python的安装路径下\Lib\site-packages ,看下安装结果,
安装的是 3.141.0 版本。
2. WebDrivers 的安装
selenium 不能直接操作浏览器,需要一个驱动,这里官方文档提供了4种主流浏览器对应的驱动的下载链接,下表:
浏览器 | 驱动下载链接 |
---|---|
Chrome | https://sites.google.com/a/chromium.org/chromedriver/downloads |
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
Firefox | https://github.com/mozilla/geckodriver/releases |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
试下火狐的驱动,发布在github上,找到环境对应的发布版本,下载
我本地的环境是 win64,这东西很小,下载完解压后发现是个exe文件,不需要安装,但需要系统可直接运行,意思就是必须放到一个配置了path环境变量的路径下,否则调用时可能报错。
设置完路径后我们在任意路径下打开cmd窗口,运行 geckodriver,如果出现下面的信息表示环境变量设置是成功的。
3. 火狐浏览器设置
Firefox版本选择,有些坑人的博客遇到报错就教人降级浏览器版本,这里我专门找来个对应关系的图,不是最新的,但可以参考下
注意图中的Firefox-min 57是指最低57版本,不是只支持57版本。我本地的环境是
python: 3.9
Selenium: 3.141
geckodriver: 0.29.0
Firefox: 84.0
是匹配的,不需要做升级或者降级操作。
现在测试写python脚本调用浏览器可能还会报下面的错误:
selenium.common.exceptions.SessionNotCreatedException: Message: Expected browser binary location, but unable to find binary in default location, no ‘moz:firefoxOptions.binary’ capability provided, and no binary flag set on the command line
这个是提示找不到 Firefox,需要把firefox.exe 路径加入到系统环境变量中
同样的,任意路径下启动cmd,输入firefox 回车,能打开火狐浏览器则表示环境变量添加成功。
重启,这个很重要,有些版本的系统必须重启后环境变量才生效。
3.python 调用 selenium
打开pyCharm,新建个python 项目,然后在新建py文件,简单2行代码
from selenium import webdriver
driver = webdriver.Firefox();
运行selenium-1.py,自动打开了火狐浏览器,成功。