使用Selenium为不停止加载的页面拍摄快照

时间:2018-09-04 05:38:52

标签: python selenium

我正在使用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()

1 个答案:

答案 0 :(得分:2)

我认为它不是那样工作的。
Webdriver将隐式等待页面加载,直到超时。
它应该给您一个超时异常。

我认为您应该使用try-except来捕获它,然后截图。
否则,您应该对另一个线程进行多线程编程以获取屏幕截图。