selenium 过去可以正常工作的Selify Python代码现在打开浏览器,然后被卡在“data:,”中,显示“Chrome不可达”

ogsagwnx  于 2022-11-10  发布在  Python
关注(0)|答案(3)|浏览(266)

编辑:我刚刚意识到我最近重新安装了Chrome,所以这可能就是问题所在。
我认为Selify希望在AppData中找到Chrome,但它不在那里。我尝试将C:\Program Files\Google\Chrome\中的应用程序文件夹复制到C:\USERS\hougy\AppData\Local\Google\Chrome,但没有解决问题。
我也试图向它展示Chrome的安装位置,但也不起作用:

options = webdriver.ChromeOptions()
options.binary_location = 'C:\Program Files\Google\Chrome\Application\chrome.exe'
browser = webdriver.Chrome(options=options)

我尝试了上述代码的变体,但都不起作用。
原质询:
在过去的几个月里,我的代码运行得很好。然后,当我昨天运行它时,在下载了新的ChromeDriver之后,浏览器打开了,但网页没有加载,它被困在地址“data:,”中。
以下是一个具有相同问题的简化版本:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from lxml import etree
import csv
import time
from datetime import datetime
import requests

# options = webdriver.ChromeOptions()

# options.add_experimental_option('excludeSwitches', ['enable-logging'])

# options.add_argument('--no-sandbox')

# options.add_argument("start-maximized")

# browser = webdriver.Chrome(options=options)

browser = webdriver.Chrome()

quote = 'https://www.fundamentus.com.br/detalhes.php?papel=BBAS3'
browser.get(quote)

我尝试用上面注解的代码替换Browser=webdriver.Chrome(),因为这里有人建议这样做,但结果是一样的。唯一的区别是,它似乎省略了一些与蓝牙相关的错误消息,这些错误消息一直存在,并不是问题的原因。
我尝试迁移到最新版本的Python,然后更新pip并重新下载所有库。我也更新了Chrome,并使用了最新的稳定的ChromeDriver。
我试着在我的第二台PC上运行代码,它在那里使用相同的Python、Chrome、chromeDriver和库版本。
以下是我运行它时得到的结果:

python .\seleniumTest.py

DevTools listening on ws://192.168.0.104:63785/devtools/browser/5d07327b-ae87-49ee-be00-b9cb0f055b74
[5156:5772:1101/160103.660:ERROR:chrome_browser_main_extra_parts_metrics.cc(230)] crbug.com/1216328: Checking Bluetooth availability started. Please report if there is no 
report that this ends.
[5156:5772:1101/160103.664:ERROR:chrome_browser_main_extra_parts_metrics.cc(233)] crbug.com/1216328: Checking Bluetooth availability ended.
[5156:13960:1101/160103.681:ERROR:device_event_log_impl.cc(214)] [16:01:03.680] Bluetooth: bluetooth_adapter_winrt.cc:1073 Getting Default Adapter failed.
[5156:5772:1101/160103.690:ERROR:chrome_browser_main_extra_parts_metrics.cc(236)] crbug.com/1216328: Checking default browser status started. Please report if there is no 
report that this ends.
[5156:5772:1101/160103.714:ERROR:chrome_browser_main_extra_parts_metrics.cc(240)] crbug.com/1216328: Checking default browser status ended.
[5156:13960:1101/160126.589:ERROR:device_event_log_impl.cc(214)] [16:01:26.588] USB: usb_service_win.cc:258 Failed to get device driver name: Element not found. (0x490)
Traceback (most recent call last):
  File "C:\Users\hougy\OneDrive\Documentos\plij\seleniumTest.py", line 14, in <module>
    browser = webdriver.Chrome()
  File "C:\Users\hougy\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 69, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "C:\Users\hougy\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 93, in __init__
    RemoteWebDriver.__init__(
  File "C:\Users\hougy\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 266, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\hougy\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 357, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\hougy\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 418, in execute
    self.error_handler.check_response(response)
  File "C:\Users\hougy\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
Stacktrace:
Backtrace:
        Ordinal0 [0x006006F3+2492147]
        Ordinal0 [0x00599BD1+2071505]
        Ordinal0 [0x004A2340+1057600]
        Ordinal0 [0x0049739D+1012637]
        Ordinal0 [0x004BFF64+1179492]
        Ordinal0 [0x004BC43B+1164347]
        Ordinal0 [0x004B9C9F+1154207]
        Ordinal0 [0x004E9DFF+1351167]
        Ordinal0 [0x004E9A6A+1350250]
        Ordinal0 [0x004E568B+1332875]
        Ordinal0 [0x004C21D4+1188308]
        Ordinal0 [0x004C302F+1191983]
        GetHandleVerifier [0x007867A6+1545030]
        GetHandleVerifier [0x0083105C+2243580]
        GetHandleVerifier [0x0068BC97+518199]
        GetHandleVerifier [0x0068AD80+514336]
        Ordinal0 [0x0059ED2D+2092333]
        Ordinal0 [0x005A2EE8+2109160]
        Ordinal0 [0x005A3022+2109474]
        Ordinal0 [0x005ACB71+2149233]
        BaseThreadInitThunk [0x76736359+25]
        RtlGetAppContainerNamedObjectPath [0x773187A4+228]
        RtlGetAppContainerNamedObjectPath [0x77318774+180]
dffbzjpn

dffbzjpn1#

3个月后,我终于解决了这个问题。我不认为这会发生在大多数收到相同错误信息的人身上,但我的情况是:
SurfShark VPN更新了他们的应用程序,最新版本使我的Selify脚本找不到GeckoDriver和chromeDriver。当我卸载了SurfShark应用程序后,它立即开始工作。仅仅扼杀这个过程是不够的。
我现在正在通过OpenVPN应用程序使用SurfShark,这个应用程序不会阻止我的脚本工作。SurfShark应用程序有更多功能,但到目前为止,我无法同时使用这两种功能。

n53p2ov0

n53p2ov02#

我无法解决这个问题,但我发现了一个变通办法:使用Firefox和GeckoDriver。我以前每次更新Chrome时都会遇到很多问题,所以我希望这次改变能改善情况,因为我只用Firefox来做这件事。

qeeaahzv

qeeaahzv3#

当你之前执行你的程序时,google-chrome浏览器和ChromeDriver完全同步。因此,它执行得很好。
但目前Google Chrome浏览器正在更新到版本95.0.4638.69您的程序找不到匹配的ChromeDriver来驱动Chrome浏览器。
因此,您会在地址栏中看到**data:,**。

解决方案

使用executable_path指向下载的匹配版本的ChromeDriver,如下所示:

browser = webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')

参考资料

您可以在中找到几个相关的详细讨论:

  • 在Linux服务器中,Python Selify“无法连接到服务%s”%self.path
  • selenium.common.exceptions.WebDriverException:消息:Can Not Connection to the Service Error Using ChromeDriver Chrome Three Selify Python:Can Not Connection to the Service Error Using ChromeDivereChrome from Selify Python.(无法使用ChromeDivereChrome通过Selify Python连接到服务错误
  • selenium.common.exceptions.WebDriverException:消息:打开Chrome浏览器时无法连接到服务chromedriver.exe

相关问题