目前有没有一种方法可以在我运行Selify脚本时自动安装正确版本的ChromeDriver?

今天我收到一个关于ChromeDriver和Chrome版本的错误.当我试图修复它的时候,我超级困惑,我在卸载和重新安装东西,改变环境,我浪费了太多的时间.最终,只需下载the latest ChromeDriver version from here就解决了这个问题(这是我第一次try ,但我发誓我第一次判断时版本号是一样的).

在我的搜索中,我偶然发现提到了WebDriver-Manager包,它似乎真的很有帮助,但我在安装它时遇到了麻烦,我不知道我是否应该将它与最新版本的Selify一起使用(我有4.18.0).我大约每个月运行一次这段代码,之前我也遇到过版本问题,所以如果有间接的方法访问ChromeDriver,而不必每次有新版本时都亲自下载它,那将是非常有用的.

这是我目前使用的代码,其中chromedriver_path_variable指向我计算机上的chromeDriver的本地安装.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

#Set up webdriver to read page
option = webdriver.ChromeOptions()
option.add_argument('--headless')
option.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36")
service = Service(executable_path=chromedriver_path_variable)
driver = webdriver.Chrome(service=service, options=option)

推荐答案

安装pip install webdriver-manager,您就可以开始了!

    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.webdriver.chrome.options import Options
    import time 
    
    # Set up WebDriver options
    options = Options()
    options.add_argument('--headless') 
    option.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36")

    # Use webdriver_manager to automatically install the correct ChromeDriver
    driver_service = Service(ChromeDriverManager().install())
    
    # Set up the WebDriver
    driver = webdriver.Chrome(service=driver_service, options=options)
    
    driver.get("https://twitter.com/home")
    time.sleep(10) # Wait for 10 seconds

Python相关问答推荐

使用SciPy进行曲线匹配未能给出正确的匹配

Pandas 滚动最接近的价值

难以在Manim中正确定位对象

什么相当于pytorch中的numpy累积ufunc

聚合具有重复元素的Python字典列表,并添加具有重复元素数量的新键

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

如何创建一个缓冲区周围的一行与manim?

Pre—Commit MyPy无法禁用非错误消息

启用/禁用shiny 的自动重新加载

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

如何在Python中使用另一个数据框更改列值(列表)

在Python中使用yaml渲染(多行字符串)

在代码执行后关闭ChromeDriver窗口

使用__json__的 pyramid 在客户端返回意外格式

如果包含特定值,则筛选Groupby

以异步方式填充Pandas 数据帧

如何求相邻对序列中元素 Select 的最小代价

Python日志(log)库如何有效地获取lineno和funcName?

文本溢出了Kivy的视区

多索引数据帧到标准索引DF