在实现所有页面的获取中,我发现如果找不到某一个元素程序会一直运行,为了让程序结束并继续运行,就需要用到超时的设置。
我通过观察,发现当运行到最后一页时,

正常情况是这样的

会出现上图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中设置隐式等待(记一次错误)