在实现所有页面的获取中,我发现如果找不到某一个元素程序会一直运行,为了让程序结束并继续运行,就需要用到超时的设置。
我通过观察,发现当运行到最后一页时,
正常情况是这样的
会出现上图class = "next disabled"这个属性
而解决这一问题也很是简单,在全局中搜索a标签中的class = "next"来进行下一页的跳转
为了解决上述问题,我用如下代码给程序设置了超时时间
public static boolean getElement(WebDriver webDriver, String Conditions) {
try {
//超时异常捕获
//设置隐式等待2秒
webDriver.manage().timeouts().implicitlyWait(2000, TimeUnit.MILLISECONDS);
//对下一页进行点击
webDriver.findElement(By.xpath("//a[@class='next']")).click();
} catch (WebDriverException e) {
return false;
}
return true;
}
我用implicitlyWait设置2秒的隐式等待,通过TimeUnit设置时间粒度为毫秒,通过xpath来寻找元素并进
行下一页的点击,通过WebDriverException来进行异常捕获,出现异常返回false,在主程序中通过while循环来实现所有页内容的获取
while (getElement(webDriver)){
//在每页的操作
}
这样它就自动点击下一页了
更多推荐
Java爬虫之在webdriver中设置隐式等待(记一次错误)
发布评论