我需要驱动一个几乎完全用 javascript 呈现的网站。到目前为止,我已经能够检测到呈现的页面并对其进行导航,但是脚本中有一些变量我想为一些导航决策进行处理。我可以使用 xpath 识别标签,但我无法在它们之间获取文本。需要明确的是,我不希望执行 javascript,只需读取页面上 javascript 中的变量即可。我很难找到任何说明我需要的文件。在一个线程中,有人提到使用文档对象,但我不确定如何以编程方式实现这一点。
我真的很感激这里的提示。非常感谢您的帮助。
我需要驱动一个几乎完全用 javascript 呈现的网站。到目前为止,我已经能够检测到呈现的页面并对其进行导航,但是脚本中有一些变量我想为一些导航决策进行处理。我可以使用 xpath 识别标签,但我无法在它们之间获取文本。需要明确的是,我不希望执行 javascript,只需读取页面上 javascript 中的变量即可。我很难找到任何说明我需要的文件。在一个线程中,有人提到使用文档对象,但我不确定如何以编程方式实现这一点。
我真的很感激这里的提示。非常感谢您的帮助。
我想到了。WebDriver.getPageSource()。由于没有解析器 javascript,我使用正则表达式找到了我想要的位,然后将 JSON 转换为具有简单 json 的对象。
private String getRandomProvider(){
String shortName = "";
JSONArray providers;
String page = this.getPageSource();
Pattern pattern = Pattern.compile("domainBootstrap\\.providers = (\\[,?\\{.*\\}\\]);");
Matcher matcher = pattern.matcher(page);
if (matcher.find()){
try {
providers = (JSONArray) new JSONParser().parse(matcher.group(1));
int randomProvider = (int)(Math.random() * providers.size());
JSONObject provider = (JSONObject) providers.get(randomProvider);
shortName = provider.get("shortName").toString();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return shortName;