编辑:我刚刚意识到我最近重新安装了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]
3条答案
按热度按时间dffbzjpn1#
3个月后,我终于解决了这个问题。我不认为这会发生在大多数收到相同错误信息的人身上,但我的情况是:
SurfShark VPN更新了他们的应用程序,最新版本使我的Selify脚本找不到GeckoDriver和chromeDriver。当我卸载了SurfShark应用程序后,它立即开始工作。仅仅扼杀这个过程是不够的。
我现在正在通过OpenVPN应用程序使用SurfShark,这个应用程序不会阻止我的脚本工作。SurfShark应用程序有更多功能,但到目前为止,我无法同时使用这两种功能。
n53p2ov02#
我无法解决这个问题,但我发现了一个变通办法:使用Firefox和GeckoDriver。我以前每次更新Chrome时都会遇到很多问题,所以我希望这次改变能改善情况,因为我只用Firefox来做这件事。
qeeaahzv3#
当你之前执行你的程序时,google-chrome浏览器和ChromeDriver完全同步。因此,它执行得很好。
但目前Google Chrome浏览器正在更新到版本95.0.4638.69您的程序找不到匹配的ChromeDriver来驱动Chrome浏览器。
因此,您会在地址栏中看到**
data:,
**。解决方案
使用键
executable_path
指向下载的匹配版本的ChromeDriver,如下所示:参考资料
您可以在中找到几个相关的详细讨论: