首页 > 解决方案 > 运行硒后窗口一直关闭

问题描述

每次我运行此代码时,窗口都会打开空白,然后在关闭前加载所需的页面约 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)但有时即使代码没有更改,它也会出现。

有什么建议么?

标签: seleniumselenium-webdriver

解决方案


此错误消息...

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 浏览上下文。


参考

您可以在以下位置找到一些相关的详细讨论:


tl; 博士

Broken pipe error selenium webdriver,当命令之间有间隙时?


推荐阅读