我面临的问题是像 fill_in 这样的capybara方法正在调用与选择器变量具有相同名称的方法。
我有一个yaml文件,其中包含变量名及其代表的选择器。
selectors.yml-
general_information:
first_name: 'first-name'
last_name: 'last-name'
我的规范打开yaml文件,并通过使用resursive-open-struct使用yaml层次结构创建变量。
describe 'this is my spec'
p = RecursiveOpenStruct.new(YAML.load(File.read('spec/support/selectors.yml')))
describe "Enter Info Page" do
it "checks for first name field", :smoke do
goto_page_info p.urls.enter_info
expect(find p.general_information.first_name).to be
end
end
我面临的问题是我的几个测试中的选择器与其他文件中的方法共享一个名称。水豚将调用方法,而不是尝试查找元素。
示例错误:
fill_in p.general_information.first_name将给出一个错误,指出“参数数量错误(给定的0为1)。这是因为它试图在另一个名为” first_name”的文件中调用方法。
如何避免这种命名冲突问题?