代码之家  ›  专栏  ›  技术社区  ›  Neil C. Obremski

为什么在Selenium+headless Chrome+Python 2.7中,save screenshot有时会无限期地阻塞?

  •  0
  • Neil C. Obremski  · 技术社区  · 7 年前

    在我的代码中,我在通过 element.submit() 然后呢。我也有关于呼叫的日志记录 webdriver.save_screenshot() .我看到的是 有时 保存屏幕截图会阻止该过程,直到我杀死 chromedriver 和/或 Chrome 过程。

    这张锁定Chrome的截图发生在两个屏幕上 Mac OS X Ubuntu 16.04 服务器(AWS EC2)。我只能把这件事重新解释一遍 无头 Mac上的Chrome。

    关于为什么会发生这种情况,有什么想法或建议吗?我的 猜测 在这一点上,它与 要素提交 因为我还没有看到这种情况发生,除非(立即)在那次电话之后。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Neil C. Obremski    7 年前

    这不是一个理想的解决方案,但为了避免无限期地阻塞,我利用了Python的 threading 模块将截图如下:

    import threading
    t = threading.Thread(target=webdriver.get_screenshot_as_file, args=[fn])
    t.start()
    t.join(10)
    assert not t.isAlive(), "Screenshot failed"
    

    如果出现异常,我会退出或终止浏览器进程,这也会导致线程消亡。