我正在尝试使用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?
答案 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