我正在迈出我的第一步,使用页面对象 gem 与 Cucumber 和 Watir 一起工作。我目前的步骤定义文件具有如下命令:
@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与页面对象一起使用的最佳方法是什么?如果可能的话,我不想在我的步骤文件中放置很多睡眠。
假设您使用的是最新版本的 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
。