Abu*_*Abu 13 python selenium google-chrome selenium-chromedriver selenium-webdriver
我已经更新了 Selenium,但即使加载了网页,错误也会不断发生。但是,在某些情况下,驱动程序启动但停滞不前。这是否会导致问题,如果是,我该如何解决?
[11556:9032:0502/152954.314:ERROR:device_event_log_impl.cc(162)] [15:29:54.314] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
Run Code Online (Sandbox Code Playgroud)
Deb*_*anB 19
这个错误信息...
ERROR:device_event_log_impl.cc(162)] [15:29:54.314] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
Run Code Online (Sandbox Code Playgroud)
...暗示ScopedClosureRunner on_init在BluetoothAdapterWinrt::OnGetDefaultAdapter().
此错误在bluetooth_adapter_winrt.cc 中定义如下:
void BluetoothAdapterWinrt::OnGetDefaultAdapter(
base::ScopedClosureRunner on_init,
ComPtr<IBluetoothAdapter> adapter) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
if (!adapter) {
BLUETOOTH_LOG(ERROR) << "Getting Default Adapter failed.";
return;
}
Run Code Online (Sandbox Code Playgroud)
确保这件事:
然而,据观察,可以通过在 Linux 上以root用户 ( administrator)身份运行 Chrome 来抑制此错误。但这与ChromeDriver - WebDriver for Chrome中提到的文档有偏差:
Chrome 在启动期间崩溃的一个常见原因是在 Linux 上以 root 用户(管理员)身份运行 Chrome。虽然可以通过在创建WebDriver会话时传递“--no-sandbox”标志来解决此问题,即ChromeDriver会话作为此类配置不受支持且极不鼓励。
理想情况下,您需要将环境配置为以普通用户身份运行 Chrome。
最后,根据Selenium Chrome 驱动程序:解决有关注册表项和实验选项的错误消息中的文档,可以通过添加参数来抑制这些错误日志:
excludeSwitches: ['enable-logging']
Run Code Online (Sandbox Code Playgroud)
所以你的有效代码块将是:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.google.com/")
Run Code Online (Sandbox Code Playgroud)