在我的代码中,在通过element.submit()
提交表单之前和之后,我保存了屏幕截图。我还记录了对webdriver.save_screenshot()
的调用。我看到的是有时保存屏幕快照会阻塞该过程,直到我杀死chromedriver
和/或Chrome
进程为止。
此屏幕截图锁定了Chrome,同时在 Mac OS X 和 Ubuntu 16.04 服务器(AWS EC2)上进行。我只能在Mac上的 headless Chrome上进行复制。
关于为什么会发生这种情况的任何想法或建议?这时我的猜测与element.submit()
有关,因为除了调用之后(立即),我还没有看到这种情况。
答案 0 :(得分:0)
This isn't an ideal solution but in order to keep from blocking indefinitely I've tapped into Python's threading
module to take a screenshot like so:
import threading
t = threading.Thread(target=webdriver.get_screenshot_as_file, args=[fn])
t.start()
t.join(10)
assert not t.isAlive(), "Screenshot failed"
If an exception occurs then I quit or terminate the browser process which results in the thread dying off as well.