【问题标题】:Is it possible to dynamically create a page object element是否可以动态创建页面对象元素
【发布时间】:2013-12-04 04:44:29
【问题描述】:

我正在使用 Cheezy 的页面对象 gem。它在大多数情况下都能很好地工作,但在使用动态创建的元素时我似乎无法使用它。我有一种方法可以通过将单元格的文本内容传递给方法并在操作时识别元素来单击单元格

def select_row (row_contents)
    cell(:row, :text => /#{row_contents}/i)
    self.row.click
end

我很确定这不起作用,因为该元素在运行时没有为它生成的方法。有人可以告诉我一种以这种方式动态创建带有页面对象的元素的方法吗?

【问题讨论】:

    标签: ruby cucumber watir watir-webdriver page-object-gem


    【解决方案1】:
    def select_row (row_contents)
        self.class.cell(:row, :text => /#{row_contents}/i)
        self.row_element.click
    end
    

    变化是,cell 方法应该在 pageobjectclass 上调用,因为它是一个类级别的方法

    【讨论】:

    • 您应该小心执行此操作,因为此页面对象的所有实例现在都将具有此 row 元素。
    【解决方案2】:

    请注意,您可以使用 NestedElements 定位类似于 Watir 的元素。你的方法可以简单地写成:

    def select_row(row_contents)
      cell_element(:text => /#{row_contents}/i).click
    end
    

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 2018-01-07
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多