Selenium Python - 如果Basic Auth请求退出

时间:2013-11-06 09:12:32

标签: python selenium

我有一个脚本,使用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命令之后将脚本设置为错误,如果要求进行身份验证。

感谢您的帮助。

1 个答案:

答案 0 :(得分: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()

此示例引自this page