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
答案 0 :(得分:1)
页面加载超时不适用于单击的元素,因为Selenium无法知道是否正在加载新页面。这就是未应用页面加载超时的原因。您可以创建WebDriverWait并等待页面上的元素可见,等等,并设置超时。