linux下安装python插件selenium遇到的问题汇总

我已经配置好一些内容: 1.安装了谷歌驱动 2.已经把这个驱动包移动到了usr/bin目录下 3.我也安装了selenium 执行python脚本的内容:

from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
print(browser.page_source)
browser.close()

1.顺着第一个报错走 出现了报错:raise WebDriverException( selenium.common.exceptions.WebDriverException: Message: ‘chromeDriver 看描述也就是selenium模块无法找到chromeDriver,

来个排查步骤吧.把目录切换到chromeDriver的哪个目录下,执行下命令.chromeDriver,看看是否能加载这个驱动:可能会出现以下报错: 1.切换到目录下执行下命令:

.chromeDriver

ibnss3 : Depends: libnspr4 (>= 2:4.12) but 2:4.10.2-1ubuntu1 is to be installed libnss3-nssdb : Depends: libnss3 (= 2:3.23-0ubuntu0.14.04.1) but 2:3.28.4-0ubuntu0.14.04.3 is to be installed E: Unmet dependencies. Try ‘apt-get -f install’ with no packages (or specify a solution). 刚开始尝试着通过apt-get -f install类似命令安装,但是有报了错: 提示缺少libnss3这个包:

【Linux】-- apt-get install 出错,Python 未配置

上个报错的解决方案是: 1.在 terminal(命令行终端) 中执行下面语句

cd /var/lib/dpkg  
sudo mv info info.bak  
sudo mkdir info

2.再执行修复命令

sudo apt-get -fix -broken install

3.修复好重新安装libnss3

sudo apt-get install libnss3

这次再在驱动的目录下执行命令:

.chromeDriver

加载驱动成功的话会出现如下: Starting ChromeDriver … 2.第一个报错不再出现,又出现了如下第二个报错: DeprecationWarning: executable_path has been deprecated, please pass in a Service objectbrowser = webdriver.Chrome(path)

这是因为在之前版本executable_path是我们Selenium驱动的存放路径,只有使用executable_path指定出该路径,Selenium才能正常工作,但是Selenium经过版本更新之后,在使用如上写法时,系统就会报错executable_path has been deprecated, please pass in a Service object,如下所示:

所有我们需要添加一个模块并修改一下代码
from selenium.webdriver.chrome.service import Service
from selenium import webdriver
 
####  url地址
url = http://www.baidu.com
 
####  定义chrome驱动去地址
path =  Service(chromedriver.exe)
 
####  创建浏览器操作对象
browser = webdriver.Chrome(service=path)
browser.get(url)

我们在执行就会发现,不再会报错了,因为我们已经将驱动器路径定义给了service

经验分享 程序员 微信小程序 职场和发展