如果页面没有停止加载,如何导航到新的URL?

时间:2014-10-15 21:46:55

标签: python selenium

我正在尝试使用Selenium和Python浏览URL列表。但是,有些页面不会停止加载,并且如果发生这种情况,则希望导航到其他网址。所以,我使用了TimeoutException。但是,在获得该异常后,浏览器不会导航到列表中的下一个URL并继续尝试加载该页面。

我使用的代码大致如下:

list_of_urls = [...]    # List of the URLs I wish to navigate to
for i in range(0, len(list_of_urls)):
    try:
        browser.get(list_of_urls[i])
    except TimeoutException:
        print 'Timeout'
        continue

如果页面没有停止加载,如何让浏览器导航到列表中的下一个URL?

2 个答案:

答案 0 :(得分:1)

@ JFSebastian的建议有所帮助。但是,我并没有关闭浏览器。我只是创建一个新标签。我正在做的事情如下:

list_of_urls = [...]    # List of the URLs I wish to navigate to
for i in range(0, len(list_of_urls)):
    try:
        browser.get(list_of_urls[i])
    except TimeoutException:
        print 'Timeout'
        browser.find_elements_by_tag_name('body').send_keys(Keys.CONTROL + 't')     ## Open new tab
        browser.switch_to_window(main_window)
        browser.find_elements_by_tag_name('body').send_keys(Keys.CONTROL + Keys.SHIFT + Keys.TAB)       ## Focus to previous tab
        browser.switch_to_window(main_window)
        browser.find_elements_by_tag_name('body').send_keys(Keys.CONTROL + 'w')     ## Close current tab
        browser.switch_to_window(main_window)
        browser.get(url)

我在lrhache的github上发现了这个方法here

答案 1 :(得分:0)

所以这是一个我能想到的简单修复:

list_of_urls = [...]    # List of the URLs I wish to navigate to
while i < len(list_of_urls):
    try:
        browser.get(list_of_urls[i])
    except TimeoutException, e:
        print 'Timeout'
    finally:
        i += 1