ラジオボタンで選択されたオプションのリストを含むページを持つサイトを自動化しています。ラジオの1つを選択すると、テキストフィールドと選択リストが表示されます。PageObject Rubyでテキストフィールドにテキストを設定すると、メインファイルでしか機能しません。
テスト(ruby test_contracting.rb)と私のページを表す他のいくつかのクラスを実行するファイル(test_contracting.rb)を作成しました。
私のクラスContractPageで、私は以下の要素宣言があります。
def configure_domain(config={})
check_option_sub_domain
domain = config[:domain]
tld = config[:tld]
end
:
checkbox(:option_sub_domain, :id => "option_sub_domain")
text_field(:domain, :id => "domain_text")
select_list(:tld, :id => "domain_tld")
を私はContractPageに、このようなドメインの構成を設定するメソッドを作成しました私は、test_contracting.rbからconfigure_domainメソッドを呼び出し、ラジオボタンを選択しますが、フィールドに値を入力しません。 paramsはメソッドに正しく入っています。私はそれを "puts"を使ってチェックしました。たとえ私がparamを "bla"のような一般的な文字列に変更しても、それは動作しません。面倒な点は、test_contracting.rb上で全く同じコンポーネントを呼び出すと動作するということです。
domain_element.value = config[:domain]
tld_element.send_keys config[:locaweb_domain]
は、それが働いた:私は仕事に見つけたもの
my_page_instance = ContractPage.new(browser)
my_page_instance.domain = "bla"
my_page_instance.tld = ".com"
はconfigure_domain方法では、次のよう実装することでした。
私はリファレンスとして使用していPageObjectsモジュールのドキュメントは、ここで見つけることができます:http://rubydoc.info/github/cheezy/page-object/master/PageObject/Accessors#select_list-instance_method
君たちは、Pageオブジェクトによって生成されたメソッドの自動オブジェクトのdidntの値を設定する理由は上の任意のexplationを持っていますかこのスコープ/コンテキストで作業しますか?
ところで、友人はJavaで同じことを試しても失敗しました。