【问题标题】:Is it possible to use siteprism variables to define new variables when defining the page object?定义页面对象时是否可以使用siteprism变量定义新变量?
【发布时间】:2017-02-14 21:29:32
【问题描述】:

我正在从事一个黄瓜、红宝石、水豚、siteprism 项目,我们在 siteprism 页面对象中定义了大多数英国变量。

有没有办法让我使用我创建的 siteprism 变量作为新变量定义的一部分?

例如,如果我有一个如下所示的 siteprim 页面:

sections :user_container, "#user_container" do
   sections :address_module, "#address" do
       element :house_number, "#house_number"
   end
end

我能否以某种方式在同一个 pageobject 声明中定义新变量,例如:

element :postcode, :user_container[2].:address_module[1].text
OR
element :postcode, ":user_container[2].:address_module[1].text"
OR
some other syntax or workaround?

谢谢。

【问题讨论】:

    标签: cucumber capybara pageobjects site-prism


    【解决方案1】:

    通过查看sections - https://github.com/natritmeyer/site_prism/blob/master/lib/site_prism/element_container.rb#L33 的 site_prisms 代码,可以看出它所做的只是在类上定义方法。它不会将传递给它的参数存储在以后可以访问的任何地方或任何用户可访问的变量中。所以,没有办法在其他element/section 调用中重用它们。您可以做的只是在要访问邮政编码的类(页面对象)上定义方法,例如

    def postcode
      user_container[2].address_module[1].text
    end
    

    【讨论】:

    • 感谢Thomas 一如既往的解释和解决方法。好主意:)
    猜你喜欢
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    相关资源
    最近更新 更多