selenium - 运行硒后窗口一直关闭
问题描述
每次我运行此代码时,窗口都会打开空白,然后在关闭前加载所需的页面约 1 秒钟。
from selenium import webdriver
driver = webdriver.Chrome('C:/Users/*****/Downloads/chromedriver_win32/chromedriver.exe')
driver.get("https://stackoverflow.com/")
出现一两次错误,[268:10204:0208/163438.782:ERROR:broker_win.cc(55)] Error reading broker pipe: The pipe has been ended. (0x6D)
但有时即使代码没有更改,它也会出现。
有什么建议么?
解决方案
此错误消息...
ERROR:broker_win.cc(55)] Error reading broker pipe: The pipe has been ended. (0x6D)
...意味着管道已损坏,就好像浏览器端已关闭一样。
此错误在 Chromium 代码存储库中的broker_win.cc中定义如下:
Channel::MessagePtr WaitForBrokerMessage(PlatformHandle platform_handle,
BrokerMessageType expected_type) {
char buffer[kMaxBrokerMessageSize];
DWORD bytes_read = 0;
BOOL result = ::ReadFile(platform_handle.handle, buffer,
kMaxBrokerMessageSize, &bytes_read, nullptr);
if (!result) {
// The pipe may be broken if the browser side has been closed, e.g. during
// browser shutdown. In that case the ReadFile call will fail and we
// shouldn't continue waiting.
PLOG(ERROR) << "Error reading broker pipe";
return nullptr;
}
您看到此错误的主要原因是ChromeDriver控制的Chrome浏览器被检测到并且导航被阻止。
解决方案
作为一种解决方案,您可能需要使用某些配置配置ChromeDriver / Chrome ,以便不会检测到Selenium驱动的Chrome 浏览上下文。
参考
您可以在以下位置找到一些相关的详细讨论:
- Selenium webdriver:修改 navigator.webdriver 标志以防止硒检测
- 有没有办法使用 Selenium WebDriver 而不通知文档它是由 WebDriver 控制的?
tl; 博士
推荐阅读
- jar - Airflow 是否支持 jar 文件?
- java - 当我的 spring Cloud 版本是 Edgware.RELEASE 时,如何自动装配 2.x Spring cloud openFeign 界面?Spring找不到这个bean
- powershell - 与使用分号的单行运行相比,逐行运行会产生奇怪的结果
- java - 使用代理获取 Azure Blob 存储值 Java
- javascript - 对使用 auth0 进行身份验证的 POST 服务实施 Jest 测试
- sql - 在单独的邮政编码列表中过滤地址列表
- r - RStudio 中 Rfacebook 包的 Facebook API v3.2 连接问题
- firebase - 使用 firebase.auth() 获取特定用户的个人资料或使用自定义集合来存储和检索个人资料信息
- android - 函数的用途是什么:setRequestPermisssionsResult?
- javascript - 如何在 Selenium IDE 中保存包含数字的字符串的一部分?