0
我是Selenium的新手,嘗試設置一些PageObjects
。現在,我有兩個PageObjects
:Login
和ProjectIndex
。在Login.rb
中,我有一個方法successful_login
填寫一個電子郵件地址,然後單擊一個登錄按鈕,該按鈕顯示項目索引頁面。我的理解是,點擊登錄應該返回ProjectIndex
的實例,但我似乎無法得到這個工作。當測試運行時,我收到以下錯誤:Selenium - 返回代表目標頁面的新頁面對象
1) Login succeeded
Failure/Error: expect(@project_index.loaded?).to be true
NoMethodError:
undefined method `loaded?' for nil:NilClass
# ./spec/login_spec.rb:22:in `block (2 levels) in <top (required)>'
這裏是我的測試(在login_spec.rb
):
it 'succeeded' do
@login.successful_login '[email protected]'
expect(@project_index.loaded?).to be true
end
我/pages/login.rb
文件:
class Login < Base
...
def successful_login(email)
send_keys EMAIL_INPUT, email
click SIGNIN_BUTTON
@project_index = ProjectIndex.new(@driver)
end
...
end
我/pages/project_index.rb
文件:
class ProjectIndex < Base
...
def loaded?
wait_for(6) { displayed? NAVIGATION_BAR }
end
...
end
謝謝,任何幫助表示讚賞!
謝謝@stytown!當我在'login_spec.rb'中使用'@ driver'時,它可以工作: '@project_index = @ login.successful_login'[email protected]',@driver expect(@project_index.loaded?)。真' 不知道這是什麼意思關於我的設置,但似乎工作正常。 –
太棒了,很高興它的工作!你介意點擊左邊的複選標記讓人們知道你的問題得到了回答嗎? – stytown