如何在使用xpath或css时将动态值传递给页面对象

时间:2014-06-20 06:28:57

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

我必须传递动态值以检查text_field值是否存在。我们怎样才能在课堂上使用Page-object。

下面我应该动态传递检查值。我正在使用黄瓜示例表来为检查提供价值。

代码:

class VerifyDetailsPage
include PageObject
include CommonPage

in_iframe(:index => 1) do |frame|
    text_field(:reverse_check, xpath: "//input[@value='#{inspect}']", frame: frame)
end

def reverse_route
     if reverse_check_element.exists?
        soon...
     else
        ...
     end
  end

1 个答案:

答案 0 :(得分:0)

由于在计算类时会创建访问器方法,因此您无法使用访问器来查找动态定位的元素。有关详细信息,您可以查看功能请求 - Issue 203

另一种方法是使用页面对象的常规定位器方法。例如,您可以创建一个reverse_check_element方法来获取给定值的输入字段:

class VerifyDetailsPage
  include PageObject

  def reverse_check_element(inspect)
    platform.in_iframe(:index => 1) do |frame|
      text_field_element(xpath: "//input[@value='#{inspect}']", :frame => frame)
    end
  end
end

reverse_route方法可以使用所需的值调用reverse_check_element方法:

def reverse_route(inspect)
  if reverse_check_element(inspect).exists?
    # soon...
  else
    # ...
  end
end