【发布时间】:2015-09-20 07:43:32
【问题描述】:
我是 Selenium 的新手,正在尝试设置一些 PageObjects。现在,我有两个PageObjects:Login 和ProjectIndex。在Login.rb 中,我有一个方法successful_login 填充电子邮件地址,然后单击登录按钮,显示项目索引页面。我的理解是单击登录应该返回ProjectIndex 的实例,但我似乎无法使其正常工作。测试运行时,我收到以下错误:
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 'victor@something.com'
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
谢谢,感谢任何帮助!
【问题讨论】:
标签: ruby-on-rails ruby selenium