-2

我需要驱动一个几乎完全用 javascript 呈现的网站。到目前为止,我已经能够检测到呈现的页面并对其进行导航,但是脚本中有一些变量我想为一些导航决策进行处理。我可以使用 xpath 识别标签,但我无法在它们之间获取文本。需要明确的是,我不希望执行 javascript,只需读取页面上 javascript 中的变量即可。我很难找到任何说明我需要的文件。在一个线程中,有人提到使用文档对象,但我不确定如何以编程方式实现这一点。

我真的很感激这里的提示。非常感谢您的帮助。

4

1 回答 1

0

我想到了。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;
于 2013-01-08T15:29:17.683 回答