1. Python安装Selenium模块
pip install Selenium
2. 下载浏览器驱动
- chrome驱动文件下载:http://chromedriver.storage.googleapis.com/index.html
- firefox驱动文件下载: https://github.com/mozilla/geckodriver/releases
- chrome浏览器需要下载对应版本的驱动,不然会报错,找不到一致的版本号就找大版本号一样的。我这里就是版本没对应,所以程序报错了。
在浏览器地址栏输入 chrome://version/
查看chrome浏览器版本号
异常信息:
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 78
3. 解压驱动文件
- zip格式可以用unzip命令解压
unzip chromedriver_linux64.zip
- gz格式用tar命令解压
tar -zxvf geckodriver-v0.27.0-linux64.tar.gz
- 解压出来有两个可执行文件chromedriver和geckodriver
4. 注意可执行文件名字不能更改,否则会报错。
4. 环境配置
- 将解压后的可执行文件移动到系统环境变量的目录中,输入
echo $PATH
查看系统环境变量。环境变量不一定相同。
- 我这里是将存放驱动的目录配置到系统变量中的,我觉得这样比较方便扩展,而且也不会担心之后忘了放哪里的。
- 当然也可以选择移动到系统的环境变量,比如移动到
/usr/local/bin
目录下。
sudo mv chromedriver /usr/local/bin/
sudo mv geckodriver /usr/local/bin/
5. 验证环境
- 在终端输入chromedriver和geckodriver验证。输出如图下就代表环境配置成功了。
- 如下显示则表示失败了。
6. pycharm编写代码测试
测试代码,正常运行会输出url地址的html源码。
- Firefox
from selenium import webdriver
url = "https://www.baidu.com"
driver = webdriver.Firefox()
driver.get(url)
print(driver.page_source)
driver.close()
- Chrome
from selenium import webdriver
url = "https://www.baidu.com"
driver = webdriver.Chrome()
driver.get(url)
print(driver.page_source)
driver.close()
7. 运行出现异常
- 如果出现以下异常参考这篇博客解决 以root权限运行浏览器
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process