我在交互式硒中创建了一个自定义处理程序,如下所示
public class SomeHandler implements InteractiveSeleniumHandler {
private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
public String processDriver(WebDriver driver) {
String accumulatedData = "";
try {
Configuration conf = NutchConfiguration.create();
new WebDriverWait(driver, conf.getLong("libselenium.page.load.delay", 3));
WebElement more = driver.findElement(By.className("ulBlueLinks"));
more.click();
LOG.error("before collecting data:");
JavascriptExecutor jsx = (JavascriptExecutor) driver;
jsx.executeScript("document.body.innerHTML=document.body.innerHTML;");
accumulatedData = driver.findElement(By.tagName("body")).getAttribute("innerHTML");
}
catch (Exception e) {
LOG.error(StringUtils.stringifyException(e));
}
return accumulatedData;
}
public boolean shouldProcessURL(String URL) {
return true;
}
}
问题是有时我得到了整个数据(包括点击事件后的数据),有时它没有得到动态数据。
注意:我可以在浏览器中看到点击事件。我正在使用以下内容:
- 火狐 61
- 硒 3.13
- 阿帕奇纳奇 1.14