Cheezy Page-Object Gem 通用元素的动态定位器?

Cheezy Page-Object Gem Dynamic Locator for Generic Element?

使用 Cheezy 的页面对象 gem 我发现了动态元素定位器的功能。 (在这个 github 问题上注明:https://github.com/cheezy/page-object/issues/203)。

因此,例如我可以执行 span_element(id: 'some id')div_element(class: 'some_class') 等操作。但是,如果我需要定位通用元素,我该怎么办?例如,我可以在具有 angular 的页面上工作,因此元素不是传统的(而不是带有选项的传统 html select 控件,它是自定义 angular 落下)。我试过 element_element(class: 'class_name')element(class: 'class_name') 但 ruby 说 method missing

通用动态元素定位器在 PageObject::ElementLocators#element 中定义为:

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

第一个参数是元素的标签名称。如果您不知道标签名称,您可以为任何标签指定 "element"。例如:

class MyPage
  include PageObject

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