我自動化一個網站,網頁上有一個由單選按鈕選擇的選項列表。選擇其中一個無線電時,會顯示一個文本字段和一個選擇列表。帶有Ruby的PageObject - 在文本字段中設置文本只能在主文件中使用
我創建了一個文件(test_contracting.rb),通過它我執行測試(ruby test_contracting.rb)和其他一些類來表示我的頁面。
在我的課ContractPage,我有以下元素聲明:
checkbox(:option_sub_domain, :id => "option_sub_domain")
text_field(:domain, :id => "domain_text")
select_list(:tld, :id => "domain_tld")
我在ContractPage創建的設置域這樣的配置的方法:
def configure_domain(config={})
check_option_sub_domain
domain = config[:domain]
tld = config[:tld]
end
當我從test_contracting.rb調用configure_domain方法,它選擇單選按鈕,但它不填充值。這些參數正在進入正確的方法。我用「puts」檢查過它。即使我將參數更改爲像「bla」這樣的通用字符串,它也不起作用。令人討厭的一點是,如果在test_contracting.rb上調用完全相同的組件,它就可以工作。
my_page_instance = ContractPage.new(browser)
my_page_instance.domain = "bla"
my_page_instance.tld = ".com"
我發現工作是什麼在configure_domain方法,具有如下功能:
domain_element.value = config[:domain]
tld_element.send_keys config[:locaweb_domain]
然後它的工作。
對我使用作爲參考PageObjects模塊的文檔可以在這裏找到:http://rubydoc.info/github/cheezy/page-object/master/PageObject/Accessors#select_list-instance_method
你們是否已經對爲什麼由pageobject產生的方法自動設置對象didnt價值的任何explation在這個範圍/上下文中工作?
順便說一句,一位朋友用Java試過同樣的事情,但也失敗了。