Selenium爬虫遇到超时TimeOut问题的解决方法

本文介绍了处理Selenium爬虫超时问题的三种方法:1. 使用显式等待,通过设置WebDriverWait来等待特定元素出现或满足条件;2. 配置隐式等待,全局设置findElement方法的超时时间,但需要注意其可能带来的全局影响;3. 通过线程休眠临时暂停执行,提供额外等待时间。这些方法有助于提高爬虫的稳定性和准确性。
摘要由CSDN通过智能技术生成

1.显式等待

显式等待,就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么就跳出Exception.

/*** 设置元素等待时间* * @param driver* @param by* @param timeOut  //等待时间,以秒为单位*            */
public static void waitForLoad(WebDriver driver, final By locator, int timeOut) {
WebDriverWait wait = new WebDriverWait(driver, timeOut);  // timeOut为等待时间,单位秒
wait.until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
boolean loadcomplete = d.findElement(locator).isDisplayed();
return loadcomplete;}});}

2.隐式等待

driver.manage().timeouts().implicitlyWait(second, TimeUnit.SECONDS); //second为等待时间,单位秒

设置driver内findElement等方法的超时时间,该设置为全局设置,使用起来比较方便。
隐式等待, 此处的隐式等待是针对Driver 每次执行命令的 最长执行时间也可以理解为超时时间,  一些人对此处有误解,认为是让Driver等一段时间,  确实某些时候能让Driver等一段时间, 但是影响是全局的,每次Driver执行 找不到元素都会等待此处设置的时间,  假设某处将此值设置的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值