0

我有一个使用 Selenium 收集网站屏幕截图的脚本。我的问题是,如果站点请求基本身份验证,我希望脚本只是出错并退出。

目前它只是在那里停留了大约一分钟,然后拍摄了一张空白屏幕截图。

我正在使用的代码如下。

#!/usr/bin/env python

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Firefox()
browser.get('http://www.google.com')
browser.save_screenshot('screenshot.png')
browser.quit()

display.stop()

如果要求进行身份验证,我希望有一种简单的方法可以在 browser.get 命令之后使脚本出错。

谢谢你的帮助。

4

1 回答 1

0

然后 selenium 做截图后可能没有加载这个页面。您可以使用显式等待功能吗?例如:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0

ff = webdriver.Firefox()
ff.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(ff, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))
finally:
    ff.quit()

此示例引用自此页面

于 2013-11-06T10:07:27.943 回答