12月3日JJUG CCC 2016 Fallに行ってきて
selenideを試行錯誤しながら実践するブラウザ自動テスト
を聞いてきたのでメモメモ
・自己紹介
Selenide
Selenium WebDriverを使いやすくラップしたフレームワーク
Codeborne社がつくっている エストニア共和国
Selenium Web Driverとの比較
ページの表示
コードに対して違いはなさそうだが・・・
ブラウザをChromeからFirefoxに変える場合
→WebDriverはコードを変える必要がある
Selnideはシステムプロパティでブラウザを設定
主な設定項目
ブラウザ
ウィンドウサイズ
最大化するか
ベースURL
りもーとどらいばのURL
フォームコントロール
selenideは$をつかう
アサーション
selenideは$をつかう(統合されている)
Ajaxのアサーション
WebDriver
ループさせる
FluentWait
selenideは$をつかう(リトライ処理をしてくれる)
SelenideElement
・メソッドの戻り値とか
脱線:Dynamic Proxy
代表的な利用シーン:AOP、ラッパー
ただし、静的な継承関係が見えなくなる
スクリーンショット
WebDriver
パスを指定とか、いろいろ
selenideはscreenshot("ファイル名")
HTMLも取ってくれる
ラジオボタン
その他の比較はGitHubへ
(この資料は公開します)
ページオブジェクトパターン
・式を入れたら、答えを表示する
大量のlookupは修正が大変
・ページオブジェクトパターンでは、
修正するところが限られる
・ページオブジェクトパターンの定義
内部状態を露出してはならない
メソッドでページに対する操作を提供
:
:
・ゆるいかんじでやってます・・・
・ページオブジェクト支援機能
・独自クラスの作り方
ElementsContainerをExtendsするだけ
インジェクションを入れ子にできる
デモ
headlessで動かすには
PhantomJSDriverなどもあるが、Dockerつかうのがよさそう
SeleniumがDockerイメージを提供
デモ
困っていること
・IE
解決策ない
たまに予期せぬエラーで落ちる