SeleniumでHTMLを出力する方法

More than 3 years have passed since last update.


はじめに


  • こんなときに役に立ちました


    • テストは手動でコンソールから実行すると成功するのに、Jenkinsから実行すると失敗する

    • 目視で見ようかと思ったが、Jenkinsから実行するとブラウザがバックグラウンドで起動して見えない

    • かといってフォアグラウンドで実行する方法はググったが分からなかった

    • 詰んだ orz...




現在表示しているページのHTMLを取得する


  • 原始的ですが、Javascript式を挿入してgetElementほげほげで取得します


    • あとはputsで出力するなり、ファイルに書き出すなりすればブラウザでその決定的瞬間に出会えるのです



# idにdocが付いている要素があると仮定している

page.evaluate_script("document.getElementById('doc').innerHTML")


  • page.evaluate_scriptの引数に指定したものがJavascript式として評価される

  • ID以外にも要素の指定はタグ名やクラス名指定などでも可能


実はもっと簡単に取得する方法があるのかもしれない。。と思いながら記事書いてみました!


~ただの宣伝~


  • 全国のSeleniumer必読

  • Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください