送信ボタンのないフォームで作業する必要があるGeb(WebDriver)でテストを構築しています。ユーザーの観点からは、検索語を入力してキーボードのEnterキーを押すのと同じくらい簡単に使用できます。
純粋なスクリプト形式でGebを使用すると、次のように、入力するテキストに特別なキーコードを追加することでこれを回避できます。
import org.openqa.selenium.Keys
$('input[id=myInputField]') << "michael"+Keys.ENTER
それはうまくいきます。しかし、Gebが推奨するページオブジェクトパターン(http://www.gebish.org/manual/0.7.1/pages.html#the_page_object_pattern)を使用したい場合、何をすべきかわかりません。EmployeeSearchPageオブジェクトのコンテンツセクションで、欠落しているsearchButtonと、結果のページの処理方法をGebに指示するその「to」オブジェクト参照を複製するために何を定義しますか?
class EmployeeSearchPage extends Page {
static url = "http://localhost:8888/directory/"
static at = { title == "Employee Directory" }
static content = {
searchField { $("input[id=myInputField]") }
// THE FOLLOWING BUTTON DOESN'T EXIST IN MY CASE
searchButton(to: EmployeeListPage) { $("input[value='SUBMIT']") }
}
}
テスト用に送信ボタンをフォームに追加し、CSSを使用してユーザーのビューの外に配置できることに気付きましたが、なぜアプリをテストに適合させる必要があるのでしょうか。物事は逆に機能するはずです。
私は多くのWebテストフレームワークを評価してきましたが、このタイプのフォームは、少なくともドキュメントに関する限り、それらの多くに問題があることがわかりました。
何か案は?ありがとう!