我正在使用Selenium来捕获网页的屏幕截图。它在stackoverflow之类的网站上效果很好,但是我试图在永不停止加载的页面上使用它。有没有办法在x秒后抓取屏幕截图,无论是否完成?
当前代码:
import os
from selenium import webdriver
def main():
driver = webdriver.Chrome()
with open('test.txt', 'r') as f:
for url in f.readlines():
driver.get('http://' + url)
sn_name = os.path.join('Screenshots', url.strip().replace('/', '-') + '.png')
print('Attempting to save:', sn_name)
if not driver.save_screenshot(sn_name):
raise Exception('Could not save screen shot: ' + sn_name)
driver.quit()
if __name__ == '__main__':
main()
答案 0 :(得分:2)
我认为它不是那样工作的。
Webdriver将隐式等待页面加载,直到超时。
它应该给您一个超时异常。
我认为您应该使用try-except来捕获它,然后截图。
否则,您应该对另一个线程进行多线程编程以获取屏幕截图。