在 rspec 中使用 element_name 文本匹配 when_visibile
using element_name text in rspec match when_visibile
我有一个页面对象,其中我将元素定义为
class ProjectCreate
include PageObject
div(:feedback, :class => 'feedback_valid')
button(:save, :text => 'Save', :index => 0)
end
我正在使用 rpsec 并试图等待 feedback_element 可见,然后在我的匹配中使用来自 div 元素的文本。这是我的测试..
describe 'Add Project' do
it 'Provided Form Sucessfully' do
on(ProjectCreate) do |page|
page.set_client('add_project/valid')
page.save
expect(page.feedback_element.when_present.feedback).to match /Form successfully saved/
end
end
但是我收到了这个错误。
NoMethodError: undefined method `feedback' for #<Watir::Div:0x3b86f50>
我认为通过按名称调用 div 元素,它会 return 文本,我可以在我的期望匹配中使用它。
有没有想过我哪里出错了?
when_present
方法returns它等待的元素。该元素没有 feedback
方法;它是页面对象。
您可以获取 when_present
返回的元素的 text
:
expect(page.feedback_element.when_present.text).to match /Form successfully saved/
或者您可以等待反馈元素,然后检查 feedback
文本的值:
page.feedback_element.when_present
expect(page.feedback).to match /Form successfully saved/
我有一个页面对象,其中我将元素定义为
class ProjectCreate
include PageObject
div(:feedback, :class => 'feedback_valid')
button(:save, :text => 'Save', :index => 0)
end
我正在使用 rpsec 并试图等待 feedback_element 可见,然后在我的匹配中使用来自 div 元素的文本。这是我的测试..
describe 'Add Project' do
it 'Provided Form Sucessfully' do
on(ProjectCreate) do |page|
page.set_client('add_project/valid')
page.save
expect(page.feedback_element.when_present.feedback).to match /Form successfully saved/
end
end
但是我收到了这个错误。
NoMethodError: undefined method `feedback' for #<Watir::Div:0x3b86f50>
我认为通过按名称调用 div 元素,它会 return 文本,我可以在我的期望匹配中使用它。
有没有想过我哪里出错了?
when_present
方法returns它等待的元素。该元素没有 feedback
方法;它是页面对象。
您可以获取 when_present
返回的元素的 text
:
expect(page.feedback_element.when_present.text).to match /Form successfully saved/
或者您可以等待反馈元素,然后检查 feedback
文本的值:
page.feedback_element.when_present
expect(page.feedback).to match /Form successfully saved/