Ruby 是否可以动态创建页面对象元素

Ruby 是否可以动态创建页面对象元素,ruby,cucumber,watir,watir-webdriver,page-object-gem,Ruby,Cucumber,Watir,Watir Webdriver,Page Object Gem,我正在使用Cheezy的页面对象gem。它在大多数情况下工作得非常好,但在处理动态创建的元素时,我似乎无法利用它。我有一种方法,可以通过将单元格的文本内容传递给该方法并在操作时识别元素来单击单元格 def select_row (row_contents) cell(:row, :text => /#{row_contents}/i) self.row.click end 我相当肯定这不起作用,因为元素在运行时没有为其生成方法。有人能告诉我一种用页面对象以这种方式动态创建

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

def select_row (row_contents)
    cell(:row, :text => /#{row_contents}/i)
    self.row.click
end
我相当肯定这不起作用,因为元素在运行时没有为其生成方法。有人能告诉我一种用页面对象以这种方式动态创建元素的方法吗

def select_row (row_contents)
    self.class.cell(:row, :text => /#{row_contents}/i)
    self.row_element.click
end
更改是,应在
pageobject
class
上调用
cell
方法,因为它是类级方法


更改是,应在
pageobject
class
上调用
cell
方法,因为它是类级方法

请注意,您可以使用。您的方法可以简单地写为:

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

请注意,您可以通过使用查找类似于Watir的元素。您的方法可以简单地写为:

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

由于此页面对象的所有实例现在都将有此
元素,因此在执行此操作时应小心。由于此页面对象的所有实例现在都将有此
元素,因此在执行此操作时应小心。