错误:inspector_emulator_agent.cc(477)通过Selenium和ChromeDriver执行测试时,只能为页面启用虚拟时间,不能为工作者启用虚拟时间

时间:2018-10-22 19:11:27

标签: python selenium google-chrome selenium-webdriver selenium-chromedriver

我一直在使用Selenium和Python(以及Chrome和chromedriver)来成功地自动化与网站的交互,但是最近我的脚本停止了工作。

我将其范围缩小到了脚本可以到达的那一行,但随后没有进一步的内容,然后再没有其他任何事情发生。无论等待多长时间,都不会出错。脚本就挂在那里。

行是这样的:

start_text_area = driver.find_element_by_id('startDate')

经过一些搜索,我认为如果尝试使用超时可能会有所帮助,所以我尝试了以下代码:

 try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "startDate"))
        )
finally:
    driver.quit()

但是结果是一样的:虽然我等了一段时间,但什么都没发生。

正如我所说,这一直持续到最近。我不知道我使用的网站是否更改过。

我还应该提到,当我启动网站时,我还会看到一个终端窗口,并且看到其中出现了chromedriver错误消息。该错误消息是这样的:

[1022/123519.xxx:ERROR:inspector_emulator_agent.cc(477)] Can only enable virtual time for pages, not workers

有什么想法会导致这种情况,或者我能对此做些什么?

1 个答案:

答案 0 :(得分:0)

此错误消息...

[1022/123519.xxx:ERROR:inspector_emulator_agent.cc(477)] Can only enable virtual time for pages, not workers

...是 Chrome驱动程序 Chrome / Chromium 使用的Response中的InspectorEmulationAgent::AssertPage()。 / p>

该功能在inspector_emulation_agent.cc中定义为:

Response InspectorEmulationAgent::AssertPage() {
  if (!web_local_frame_) {
    LOG(ERROR) << "Can only enable virtual time for pages, not workers";
    return Response::InvalidParams(
    "Can only enable virtual time for pages, not workers");
  }
  return Response::OK();

当您通过--no-sandbox的实例使用参数 ChromeOptions() 时,将观察到此错误:

options = webdriver.ChromeOptions() 
options.add_argument('--no-sandbox')

解决方案

  • 删除参数 --no-sandbox 将解决问题。
  • 如果您使用的是 Windows操作系统,则需要添加参数 --disable-gpu ,如下所示:

    options = webdriver.ChromeOptions() 
    options.add_argument('--disable-gpu')
    

参考