Python selenium webdriver设置加载页面超时

时间:2023-03-09 16:58:28
Python selenium webdriver设置加载页面超时

1.  pageLoadTimeout;

pageLoadTimeout方法用来设置页面完全加载的超时时间,完全加载即页面全部渲染,异步同步脚本都执行完成。没有设置超时时间默认是等待页面全部加载完成才会进入下一步骤,设置超时时间3s是加载到3s时中断操作抛出异常;

driver.manage().timeouts().setScriptTimeout(3,TimeUnit.SECONDS);

2.  setScriptTimeout

设置异步脚本到超时时间,用法同pageLoadTimeout一样,异步脚本也就是有async属性的异步脚本,可以在页面解析的同时执行;

(我一般会使用这个解决读取超时问题,用pageLoadTimeout不知道为什么不起作用)

3.  implicitlyWait

识别对象的超时时间,如果在设置的时间内没有找到就抛出一个NoSuchElement异常,用法参数和上述一样;

4. driver.set_page_load_timeout

使用selenium爬取人大经济论坛,登陆的时候,页面一直不加载完成,一直在刷新,应该是强制登陆页面一直刷新。
用webdrive的get方法,只能在页面加载完成后才能后续操作,所以,设置了强制加载时间。
这个设置会抛出一个timeout错误,使用pass处理后,继续后边的操作。
后面的操作里又要在webdriver的返回值里查找,
查找的时候,又抛出异常

driver = webdriver.Chrome()
driver.set_page_load_timeout(10)

try:
    driver.get('http://bbs.pinggu.org/plugin.php?id=dsu_paulsign:sign')
except:    # 异常处理
    pass                # 当页面加载时间超过设定时间,执行后续动作