如何为新选项卡设置页面加载超时

时间:2017-10-05 05:57:04

标签: python python-2.7 python-3.x selenium selenium-webdriver

browser=webdriver.Firefox()
browser.set_page_load_timeout(4)
try:
    browser.get("https://9gag.com")
except:
    print("Page took too much time to load")

当我运行上面的代码时,它将执行除了:block always并打印“Page花费了太多时间加载”

但是当我运行下面的代码时,我在其中创建了一个页面,其中有一个带有id newPage的按钮,并且在单击它时立即在新选项卡中打开链接(9gag)。 我没有任何例外。它需要完整的时间加载,然后打印网站的网址

browser=webdriver.Firefox()
browser.get("file:///F:/documents/html_level_one/link_to_extreme_page_load.html")
browser.set_page_load_timeout(4)
browser.find_element_by_id("newPage").click()
browser.switch_to_window(browser.window_handles[-1])
print(browser.current_url)

我使用的是Firefox 28和selenium 2.41

my very simple starting page

1 个答案:

答案 0 :(得分:1)

页面加载超时不适用于单击的元素,因为Selenium无法知道是否正在加载新页面。这就是未应用页面加载超时的原因。您可以创建WebDriverWait并等待页面上的元素可见,等等,并设置超时。