Cheezy Page-Object Gem Динамический локатор для общего элемента? - PullRequest
1 голос
/ 08 октября 2019

Используя драгоценность страницы-объекта Cheezy, я столкнулся с возможностью иметь динамические локаторы элементов. (Отмечено в этой проблеме github: https://github.com/cheezy/page-object/issues/203).

Так, например, я могу сделать span_element(id: 'some id'), div_element(class: 'some_class') и т. Д. Однако, что я могу сделать, если мне нужно найти общий элемент? Например, я мог быработать на странице, которая имеет угловой, поэтому элементы не являются традиционными (например, вместо традиционного html-элемента выбора с параметрами, это пользовательский угловой выпадающий список). Я пробовал element_element(class: 'class_name') и просто element(class: 'class_name'), но ruby ​​говорит method missing

1 Ответ

1 голос
/ 08 октября 2019

Общий локатор динамического элемента определен в PageObject :: ElementLocators # element как:

def element(tag, identifier={:index => 0})
  platform.element_for(tag, identifier.clone)
end

Первый аргумент - это имя тега элемента. Если вы не знаете имя тега, вы можете указать «элемент» для любого тега. Например:

class MyPage
  include PageObject

  def do_stuff
    element('element', class: 'class_name').text
  end
end
...