介绍
这篇文章运用简单易懂的例子给大家介绍使用硒切换标签页如何得到超时,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
从gif直观地感受一下效果
我有大量url需要访问,但是有些url会超时
为了避免超时,设置<代码> driver.set_page_load_timeout(3) 代码>限时3秒,一旦超时就会产生TimeoutException
而且超时后标签页就卡柱了,只能通过<代码> driver.close() 代码>关闭
如果你只有一个标签页,关闭就直接退出了,还得重启
自然想到先保留一个备用的标签,原标签超时需要关闭的时候就切换过来,然后再关闭,并打开新标签,保证任何时候都有两个标签页可用! !
def访问(url,超时=3): driver.implicitly_wait(超时)#操作,获取元素时的隐式等待时间 driver.set_page_load_timeout(超时)#页面加载超时等待时间 main_win=driver.current_window_handle 为在url网址: all_win=driver.window_handles 试一试: 如果len (all_win)==1: driver.execute_script (& # 39; window.open (); & # 39;) driver.get (url) #页面处理 通过 除了例外: 在all_win获胜: 如果main_win !=赢得: driver.close() #关闭卡住的标签 driver.switch_to.window(赢得)#切换到备用标签 main_win=赢得#切换到备用标签 打破
<>强完整代码强>
从selenium.webdriver.common.by进口 从selenium.webdriver.common.keys导入密钥 从selenium.webdriver。支持导入expected_conditions EC 从selenium.webdriver.support。等进口WebDriverWait 从selenium.webdriver.chrome。选择导入选项 导入的时间 进口的要求 进口zipfile 进口操作系统 def un_zip (file_name to_dir=& # 39;。/& # 39;): “““解压zip file"““ zip_file=zipfile.ZipFile (file_name) 如果os.path.isdir (to_dir): 通过 其他: os.mkdir (to_dir) 的名字zip_file.namelist (): zip_file。提取(名称、to_dir) zip_file.close () def download_driver (to_dir=& # 39;。/& # 39;, version=& # 39; & # 39;): 打印(& # 39;安装chrome-driver第一# 39;) url=& # 39; http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE& # 39; 如果len(版本)在0: url=& # 39; http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE_& # 39; +版本 version=requests.get (url) .content.decode (& # 39; use utf8 # 39;) driver_file=& # 39; http://npm.taobao.org/mirrors/chromedriver/& # 39;+版本+ & # 39;/chromedriver_win32.zip& # 39; r=requests.get (driver_file) download_zip=癱hromedriver_win32.zip" 张开(download_zip,“wb")代码: code.write (r.content) un_zip (download_zip to_dir) os.remove (download_zip) 试一试: 司机=webdriver.Chrome () 除了例外e: download_driver (to_dir=& # 39;。/& # 39;, version=& # 39; 76 & # 39;) 司机=webdriver.Chrome () 张开(“url.txt" & # 39; " # 39;)文件: url=[line.strip (& # 39; \ n # 39;)线的file.readlines ()) 访问(url) 因为我在driver.window_handles: driver.switch_to.window(我) driver.close ()
关于使用硒切换标签页如何得到超时就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。