Конфликты имен между именами методов и переменными для элементов страницы селена - PullRequest
0 голосов
/ 24 января 2019

Проблема, с которой я сталкиваюсь, заключается в том, что методы капибары, такие как fill_in , вызывают методы, которые имеют то же имя, что и переменные для селекторов.

У меня есть файл yaml, который содержит имена переменных и селекторы, которые они представляют.

selectors.yml -

general_information:
  first_name: 'first-name'
  last_name: 'last-name'

Моя спецификация открывает файл yaml и создаетпеременные, использующие иерархию yaml с помощью resursive-open-struct.

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».

Как избежать этой проблемы коллизии имен?

...