我正在使用与Cucumber和Watir一起使用的页面对象gem的第一步。我现在的步骤定义文件包含如下命令:
@browser.text_field(:name => 'Username').wait_until_present.set username
使用page-object我正在使用以下代码测试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有什么好处?如果可能的话,我不想在我的步骤文件中大量睡眠。
答案 0 :(得分:2)
假设您使用的是最新版本的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
。