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

猜你喜欢

转载自blog.csdn.net/ShiXinXin_Harbour/article/details/129678316