页面对象 gem - 如何实现 wait_until_present
Page-object gem - how to implement wait_until_present
我正在迈出使用页面对象 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'
这不起作用,因为我得到 'no method error'
谷歌搜索显示我可以做到这一点。但它使用 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
.
我正在迈出使用页面对象 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'
这不起作用,因为我得到 'no method error'
谷歌搜索显示我可以做到这一点。但它使用 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
.