我在我的Jupyter笔记本上尝试编写这段代码,但它显示了错误。我的目标是进行网页抓取。
driver = webdriver.Chrome(ChromeDriverManager().install())
我还使用pip安装了selenium和webdriver-manager。
我在我的Jupyter笔记本上尝试编写这段代码,但它显示了错误。我的目标是进行网页抓取。
driver = webdriver.Chrome(ChromeDriverManager().install())
我还使用pip安装了selenium和webdriver-manager。
ChromeDriverManager().install()
的输出是一个executable_path
到驱动程序,但是executable_path
在selenium
4.10.0
中被移除了。这就是为什么在将该值传递给webdriver.Chrome()
之后您会看到错误。以下是更改内容:
https://github.com/SeleniumHQ/selenium/commit/9f5801c82fb3be3d5850707c46c3f8176e3ccd8e
executable_path
。如果您想传入一个 executable_path
,现在您必须使用 service
参数。(service=Service(executable_path='./chromedriver')
)但是 Selenium Manager 现在完全包含在 selenium
4.10.0
中,所以这是您所需的全部内容。from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service()
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
# ...
driver.quit()
ChromeDriverManager
,如果您的 Selenium 版本为v4.6.0
或更高,则不需要它。driver = webdriver.Chrome(ChromeDriverManager().install())
致:
driver = webdriver.Chrome()
Selenium Manager是一个新工具,它帮助获取所需的浏览器驱动程序,以便开箱即用地运行Selenium。Selenium Manager的Beta 1版本会为Chrome、Firefox和Edge配置浏览器驱动程序,如果它们未在PATH
中存在。因此,要使用Selenium 4.6及更高版本运行Selenium测试,您只需要安装google-chrome、firefox或microsoft-edge。如果您已经安装了浏览器驱动程序,则该功能将被完全忽略。
Selenium Manager 工具仍处于测试阶段,Selenium 正逐步增加对该功能的支持。当前的实现是一个备用
选项,这意味着只有在代码执行失败时才会使用它。只要您在适当的Service
类中指定驱动程序的位置(或者在 Java 中使用System Properties),将不会使用 Selenium Manager。
有两种不同的方法如下:
您完全可以避免使用webdriver-manager,您的有效代码块将是:
driver = webdriver.Chrome()
要继续使用webdriver-manager,您需要使用Service类,并且您的有效代码块将是:
driver = webdriver.Chrome(service=ChromeDriverManager().install())