第12回 Selenium談話会 in Slackのまとめ

More than 1 year has passed since last update.


はじめに


  • Selenium談話会について



  • 2018/03/02 21:00〜 Slackで実施


    • 最低半年に一度開催しています



  • 今回はテーマは決めずに、各々が持っている悩み、相談したいことなどを持ち寄って議論する形式で進めました


議題と内容


① Windowsでは要素検索ができるがMacではできない


  • 環境 : Windows 8.1 / Mac HighSiera(Safari)

  • 製品を評価する上で両方のブラウザでのテストが必須

  • テストをそれぞれ走らせるとWindowsは要素検索+クリックできるが、Macでは要素の検索で失敗している

  • => Safariは敷居が高いかもしれないので、まずはChromeで試してみてうまく行けばSafariに挑むのが良いかもしれない


    • Chromeが一番安定している



  • => docker-seleniumを利用すると環境構築のハードルが下がるし、手っ取り早く作れる


② うまく動かない時のアプローチ(問題の切り分け)はどのようにしているのか?


  • 待機処理をはさむ


    • 要素取得ができないときなど解析に役立つことがある



  • スクリーンショットを撮る



    • page.save_screenshot('ss.png') のようなワンラーナー書くだけで状況が把握できる



  • ログやエラーメッセージを読む


    • Chromedriverはシステムプロパティに設定書くとverboseのログが吐ける


      • ブラウザの中で何が起きているか見ると要素になぜ手が届かないか追えそう



    • Wire protocolレベルでコマンドのやり取りをみる




③ Seleniumあるある 〜 こういうコケ方することあるよね >_< 〜


  • デスクトップ環境だと動くのにXvfbな環境だけ転ける

  • ブラウザがそもそも起動しない


    • パス等の問題



  • ブラウザは起きるけどTimeout


    • ブラウザとdriverのバージョンが噛み合ってない




④ ページオブジェクトパターンでテスト設計するとき、ヘッダなどの共通部分はどう扱うのが良いのか?


  • ページオブジェクトパターンの学習向け/提示用途で使えると思ってデモを書いてみた



  • それぞれのページに書くと冗長なコードになるのでどう扱うか悩んでいる

  • => 共通部分をクラスに切り出して、そのクラスのインスタンスをページオブジェクトのメンバーに持つのが良いのでは


⑤ MacでBASIC認証が突破できない


⑥ ブラウザのセッションをprofileに残しておいてテストする度の認証を削減する


宣伝