2

HTML Unit ドライバーを使用してページをスクロールする方法を知っている人はいますか? HTML ユニット ドライバを使用して最後の要素が読み込まれるまでページを下にスクロールする最良の方法を教えてください。

HTML ユニット ドライバーでこれらすべての可能性を試してみましたが、スクロール ダウンしてもページが実際に読み込まれないようです。基本的に、ページはまったく下にスクロールしていません...

ログインに成功したら、ページを最後の要素までスクロールして、ページのソースを取得しようとしています。

コード:

      htmlUnitdriver.setJavascriptEnabled(true);

    //htmlUnitdriver.executeScript("scroll(0,300);");

    //htmlUnitdriver.executeScript("window.scrollTo(0, document.body.scrollHeight);");

    //htmlUnitdriver.executeScript("window.scrollBy(0,3000)", "");

    //((JavascriptExecutor) htmlUnitdriver).executeScript("window.scrollBy(0,20000)", "");

誰かが私を助けてくれることを願っています...

4

2 に答える 2

1

また、実際のページがブラウザーでレンダリングされない場合でも、Selenium HtmlUnitDriver がページを下にスクロールする機能を提供しているかどうかを知りたいと思いました。ページをスクロールできる場合にのみ、ページ上の新しいレコードを取得できます。これに対する解決策を見つけることができれば共有してください。

于 2013-08-01T12:27:53.900 に答える
1

私も以下のコードで HtmlUnitDriver を使用して Web ページをスクロールしようとしました:

jse = (JavascriptExecutor)wd;
        //((JavascriptExecutor)wd).executeScript("window.scroll(0, 250));");
        log.info("Scrolling... ");
        //jse.executeScript("window.scroll(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));");
        //jse.executeScript("window.scrollTo(0, Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));");
        //jse.executeScript("window.scrollTo(0, Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight));");
        //jse.executeScript("window.scrollBy(0,3000)", "");
         wd.executeScript("window.scrollBy(0,3000)", new Object[] { "" });

ただし、上記のコード スニペットのいずれでも成功しません (それぞれのコメントを外してください)。私の要件では、スクロールは非常に重要です。
PhantomJS とは異なり、HtmlUnitDriver は JavaScript を十分にサポートしていないという情報を入手しました。

于 2015-11-20T10:13:38.550 に答える