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

标签 ruby selenium testing site-prism

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

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

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

关于ruby - 有没有办法生成当前页面上的 Siteprism 对象的数组或哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348925/

相关文章:

ruby-on-rails - 在 Rails 中根据英语词典验证单词?

ruby - 平衡括号的简单 Ragel 示例?

selenium - 开发人员在编写代码时应该考虑什么,以便测试人员更容易使用 selenium webdriver 进行自动化测试?

go - 无法从 GoLand 运行 go 测试(Intellij Idea): compilation failed

ruby - YAML:解析包含方括号作为其第一个字符的字符串时出错

ruby - GC.start 在 Pry 中无效,但在 IRB 中有效

java - Selenium Webdriver IE 找不到元素

python - 向下滚动无法正常工作(Python)

django - 使用 Django JWT token 进行 Ansible uri 调用

java - Allure 创建屏幕截图 - Selenium