有没有办法在页面上生成当前Siteprism对象的数组或散列

时间:2016-09-06 12:20:31

标签: ruby selenium testing site-prism

对于POM,我还是新的(ish),但我发现语法和一般结构非常强大,所以现在我正在寻找先进的技术。

我有一个动态页面,对于每个部分,我运行以下代码/伪代码

if has_SECTVAR1?
   $LOG.info("Stuff")
end

if has_SECTVAR2?
   $LOG.info("Stuff")
end

我想做的就是这样。

ALLSECTIONARRAYS.each do |var|
  if has_var?
    $LOG.info("Stuff")
  end
end

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用#mapped_items获取元素名称数组。更有趣的部分是通过调用#has_element?来检查页面上是否存在这些。

您要做的事情的抽象版本是在对象上调用一个方法,并将其名称作为字符串。为此,请使用#send

MyObject.send("method_name", *args)

或者在你的情况下:

MyPage.send("has_element?")

最后,迭代所有元素:

MyPage.mapped_items.each do |item|
  if MyPage.send("has_#{item}?")
    $LOG.info("Stuff")
  end
end