【问题标题】:Cheezy Page-Object Gem Dynamic Locator for Generic Element?通用元素的 Cheezy Page-Object Gem 动态定位器?
【发布时间】:2020-02-05 21:36:23
【问题描述】:

使用 Cheezy 的页面对象 gem,我发现了拥有动态元素定位器的能力。 (在这个 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

【问题讨论】:

    标签: ruby watir page-object-gem


    【解决方案1】:

    通用动态元素定位器在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
    

    【讨论】:

    • 这不是很理想,所以我创建了一个功能请求以使标签名称可选 - github.com/cheezy/page-object/issues/491
    • 嗨,我认为 Cheezy 现在没有维护 gem。不能自己分支维护吗?
    • 哦,你也是那里的提交者?
    • @Rajagopalan,我拥有对 Page-Object 的提交访问权限,但没有发布 gem 的权限(Cheezy 会根据需要这样做)。我正在努力寻找时间来维护这颗宝石以及 Watir。
    • 哦,好吧。因此,即使您提交,他也必须为您的新提交发布下一个版本,供人们使用。所以它再次似乎没有用。他很快就会这样做吗?
    猜你喜欢
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2018-12-20
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多