Selenium广泛应用于自动化测试和自动化业务开发,同时在网络爬虫中也有较多的应用,使用Selenium有两个核心的问题:第一个是如何在爬虫领域不被识别出来,另一个是在自动化领域如何解决超时加载的问题。
今天来总结一下处理Selenium在自动化业务中的超时加载,让程序不在奔溃,同时能准确的获取信息。
首先需要区分两种超时情况,一种是页面加载出现的超时,一种是获取页面元素的超时。
对于页面加载出现的超时,Selenium提供了两个设置:
driver.set_page_load_timeout() # 设置页面加载超时
driver.set_script_timeout() # 设置页面异步js执行超时
set_page_load_timeout是用于设置页面加载超时,如下图在指定时间内未加载出页面则会报错。
set_script_timeout,用于execute_async_script()执行的异步js超时报错。
注意:使用set_page_load_timeout时候,当页面未加载出任何东西的时候(往往是html源码未加载),因为超时而停止,会导致driver失效,后面的driver都不能操作,所以超时设置应该至少保证页面内容加载出来