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

标签 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()

最佳答案

我认为事情不是这样的。
Webdriver 将隐式等待页面加载直到超时。
它应该给你一个超时异常。

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

关于python - 使用 Selenium 为不停止加载的页面拍摄快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52159434/

相关文章:

python - Python/Cython 中的快速 n 维稀疏数组

python - sqlite3操作在快速执行多次提交时出错

unit-testing - 你用什么来对你的 Web UI 进行单元测试?

带有列表和追加的 Python 奇怪行为

python - 语法错误 : keyword can't be an expression while creating a dictionary

python - 如何在 Jupyter Notebook 中显示小部件?

python - 使用 Selenium 替换文本区域中的字符串, "not reachable by keyboard"

python - Selenium Python "Name Error"我肯定错过了一些明显的东西

html - 在亚马逊主要网站上搜索一个词(解析)

multithreading - 并行测试执行后,TestNG关闭浏览器