Ruby 如何检查预填充的表单字段是否为';使用水豚毒素不能无效吗?

Ruby 如何检查预填充的表单字段是否为';使用水豚毒素不能无效吗?,ruby,automated-tests,cucumber,capybara,Ruby,Automated Tests,Cucumber,Capybara,我想检查这个字段,它的值是否为空 我试过了 expect(@browser.phone\u number.value.to\u s).exist expect(@browser.phone\u number.value).exist expect(@browser.phone\u number.value)。诚实 expect(@browser.phone\u number).exist expect(@browser.phone\u number)。要真实 expect(@browser.p

我想检查这个字段,它的值是否为空

我试过了

expect(@browser.phone\u number.value.to\u s).exist
expect(@browser.phone\u number.value).exist
expect(@browser.phone\u number.value)。诚实
expect(@browser.phone\u number).exist
expect(@browser.phone\u number)。要真实
expect(@browser.phone\u number.)。存在

但当字段的值为null时不是错误

我希望在值不为null时传递场景
当值为null时出错,您没有指定
@browser
phone\u number
是什么,但我假设它们来自使用类似SitePrism的页面对象模型

当不使用页面对象模型时,这正是
:字段
选择器的
:with
选项的作用。它可以使用正则表达式或字符串来匹配当前字段值。因此,我们可以检查名为“phone_number”的字段,以及至少有一个字符的值

expect(page).to have_field('phone_number', with: /.+/) 
如何将该选项用于页面对象模型取决于您是如何实现页面对象模型的,但它通常归结为最终使用
:字段
选择器类型和上述选项调用
find
的实现。如果使用
SitePrism
,这意味着

class MyPage < SitePrism::Page
  ...
  element :phone_number, :field, 'phone_number' # define phone_number to use the 'field' selector type
end

@browser = MyPage.new
expect(@browser).to have_phone_number(with: /.+/)
class MyPage