【问题标题】:Page-object gem - how to implement wait_until_present页面对象 gem - 如何实现 wait_until_present
【发布时间】:2017-07-18 10:50:16
【问题描述】:

我正在使用与 Cucumber 和 Watir 一起使用的页面对象 gem 迈出第一步。我目前的步骤定义文件有如下命令:

@browser.text_field(:name => 'Username').wait_until_present.set username

使用页面对象,我正在使用以下代码测试 watir(对不起):

class HomePage
  include PageObject
  text_field(:user_name, name: 'username').wait_until_present
}
end

home_page = HomePage.new
home_page.user_name = 'Mickey'

这不起作用,因为我收到“无方法错误”

谷歌搜索表明我可以做到这一点。但它使用 when_visible 而不是 wait_until_present

class HomePage
  include PageObject
  text_field(:user_name){
      text_field_element(:name => 'username').when_visible
}
end

home_page = HomePage.new
home_page.user_name = 'Mickey'

将 wait_until 或 when_visible 与 page-object 一起使用的最佳方法是什么?如果可能的话,我不想在我的步骤文件中放置很多睡眠。

【问题讨论】:

    标签: ruby cucumber watir page-object-gem


    【解决方案1】:

    假设您使用的是最新版本的 Watir,您可以这样做:

    class HomePage
      include PageObject
      text_field(:user_name, name: 'username')
    end
    
    home_page = HomePage.new
    home_page.user_name = 'Mickey'
    

    换句话说,您不需要在设置之前明确等待文本字段出现。

    Watir 进行了许多改进,包括在设置元素之前自动等待元素出现。因此,您应该很少(从不?)需要致电wait_until_present

    【讨论】:

    • 谢谢贾斯汀,今天早上我在火车上听了一个有你的 Watir 播客。我正在使用最新的 Watir 6。我将开始信任 Watir 并拿出一些 wait_until_presents 来看看我如何相处。
    猜你喜欢
    • 2013-02-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2017-12-03
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多