-2

ほぼ完全に JavaScript でレンダリングされる Web サイトを操作する必要があります。これまでのところ、レンダリングされたページを検出してナビゲートすることができましたが、スクリプトには、いくつかのナビゲーションの決定のために処理したい変数があります。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 に答える