0
試圖做一個動態測試套件並重新使用函數定義。我有一個表單,您可以選擇不同類型的聯繫方式,然後根據聯繫方式顯示不同的頁面。我試圖做ruby動態函數調用
When /^I click the (.*) return type$/ do |response|
on_page(ContactUsPage).response unless @browser.url.include?("contactBy=#{response}")
這除非網址包括「contactBy =」和響應類型(意味着你已經在頁面上並沒有鏈接會將當前響應的類型,並點擊鏈接點擊)
我有一個頁面對象類(ContactUsPage),其具有不同的方法鏈接(電子郵件,電話,傳真,郵政)
我遇到的問題是與ContactUsPage.response
響應越來越注入進入瀏覽器檢查,但它正在尋找ContactUsPage內的方法「響應」,而不是注入方法。
該方法應調用ContactUsPage.email
或ContactUsPage.fax
或ContactUsPage.phone
,具體取決於傳遞給函數的方法。
可以:例如,如果你想調用變量名稱(
email_element
或類似的),你只需要做一個快速的字符串插值開始的方法foo.send(:bar, "baz")
相當於foo.bar("baz")
您在使用_element屬性時使用此方法? on_page(ContactUsPage).send(response)_element.exists?.should be_true在(響應)「預計行結束」之後給我一個錯誤 –
是的,那是無效的Ruby語法。 'send'需要你期望它調用的方法的全名。請參閱我編輯的答案,瞭解正確的方法。 –
我不認爲你理解_element部分。 _element是一個由頁面對象給你的函數。例如:鏈接(:電子郵件,x)。如果你使用電子郵件,你會得到x的值,email_element返回頁面中的元素 –