有没有办法生成当前页面上的 Siteprism 对象的数组或哈希

Is there a way to generate an Array or Hash of Siteprism objects currently on a page

我对 POM 还是个新手,但我发现语法和通用结构非常强大,所以现在我正在寻找高级技术。

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

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

有什么想法吗?

您可以使用 #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