selenium 获取分页时每点开一次下一页都需要将driver退到窗口后重新进入表格frame:
List studentdetail = new ArrayList<Map>();
WebElement pagelink = null;
do {
pagelink = null;
List<WebElement> tables = webDriver.findElements(By.className("MsoNormalTable"));
if (!tables.isEmpty()) {
WebElement table = tables.get(0);
studentdetail.addAll(ListToCsv.getTextAnd(table,1));//解析表数据为map,添加到list中去
}
try {//获取点击下一页
pagelink = webDriver.findElement(By.linkText("下页"));
pagelink.click();//跳转页面了
webDriver.switchTo().defaultContent();//退到窗口
webDriver.switchTo().frame("main");//重新定位
} catch (Exception e) {//如果取不到下一页,则跳出循环
}
} while (pagelink != null);