selenium webdriver Chrome 116停止工作

2ledvvac  于 2023-09-28  发布在  Go
关注(0)|答案(3)|浏览(232)

我安装了Webdriver-manager 4.0.0和Selenium 4.8.0。我用的是下面的,效果很好。

driver = webdriver.Chrome(service=Service(ChromeDriverManager(version="114.0.5735.90").install()), options=Options())

我的组织升级到Chrome 16,现在上面的不再工作。我知道selenium 4.11.2不再需要webdriver manager,因为selenium manager会自动处理驱动程序和浏览器本身。所以我升级到了Selenium 4.11.2。
我试过这个:
driver = webdriver.Chrome()
还有这个

service = Service()
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)

这两个都是我在网上找到的解决方案,解决了大多数人的问题,但对我来说不是。
我将在下面的控制台中发布部分错误日志:

E           selenium.common.exceptions.WebDriverException: Message: Unsuccessful command executed: G:\some_path\venv\lib\site-packages\selenium\webdriver\common\window
s\selenium-manager.exe --browser chrome --output json.
E           {'code': 65, 'message': 'error sending request for url (https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json): error tr
ying to connect: tcp connect error: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection faile
d because connected host has failed to respond. (os error 10060)', 'driver_path': '', 'browser_path': ''}
 
 
E           selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location

有人能帮我吗?这个问题是与我的组织安全/代理设置有关,还是我忽略了其他问题?
Thanks in advance

eaf3rand

eaf3rand1#

我认为Service()需要一个路径到chromedriver的下载版本。
你可以从这个link 1(版本114或更早)或这个link 2(版本115或更高)下载chromedriver,然后将Service中的路径替换为chromedriver的实际路径(把它放在某个地方,复制它的路径并粘贴到Service()中)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# Service(path_to_chromedriver_executable)
service = Service('C:\\Users\\akram\\Desktop\\Work\\chromedriver-win64\\chromedriver.exe')
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)

url = "URL_TO_SCRAP"
driver.get(url)
page = driver.page_source

Note:最好同时更新Chrome和chromedrive。

bakd9h0s

bakd9h0s2#

您的项目可能在网络代理后运行。试试下面的:

Proxy proxy = new Proxy();
proxy.setAutodetect(true); // true or false depends on system proxy settings
//proxy.setHttpproxy("some.host.com:8081/");
proxy.setSslProxy("some.host.com:8081/");
  
//chromeOptions.setBinary("C:\\Program Files (x86)...\\chrome.exe"); //may be needed some times if chrome binary is not in C:\\Program Files...
chromeOptions.setProxy(proxy);
driver = new ChromeDriver(chromeOptions);

(Also请参阅我在以下链接上的类似回复,以获取更多参考:https://github.com/SeleniumHQ/selenium/issues/12580

ozxc1zmp

ozxc1zmp3#

这是我在VS之前遇到的问题。我有一个chromedriver,以前是通过包管理器导入的。如果你曾经通过另一个库、包或其他一些自定义解决方案来管理chromedriver,你可能需要删除对它的引用。
它可能仍在尝试下载不再可用的错误版本。

相关问题