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
使用 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