我尝试在没有睡眠命令的情况下在刚打开的页面上找到按钮。
HTML:
<span id="create-user-button" class="ui-button ui-widget ui-state-default
ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
<span class="ui-button-text">Create·User</span>
</span>
我元素的初始化:
span(:create_user_button, :id => "create-user-button")
def open_user_creation_dialog
sleep 1
self.create_user_button_element.when_visible.click
end
当我在Chrome浏览器中使用一段没有睡眠的代码时,我的页面已关闭,我找不到已定义的按钮。 FF没有这样的问题。 我尝试使用很多变体来修复它,例如:
self.create_user_button_element.when_visible(2).click
self.create_user_button_element.when_present(2).click
找到了解决方案:
我的页面不使用Ajax,但是我的页面上有很大的用户表,下载需要很长时间。 所以我在等待下载大表,之后我发现我的元素非常好。 我的问题解决了。
div(:total_users_number, :id => "users-table_info")
def open_user_creation_dialog
self.wait_until(10, "No users displayed") do
self.total_users_number_element.when_visible.text != ""
end
self.create_user_button_element.when_visible.click
end
答案 0 :(得分:0)
我有一个非常有用的内容页面,即用户列表,所以我应该等待具有大内容的元素。我这样做,这样:
div(:total_users_number, :id => "users-table_info")
self.wait_until(10, "No users displayed") do
self.total_users_number_element.when_visible.text != ""
end
当这个元素加载时,我可以找到我所寻找的元素
self.create_user_button_element.when_visible.click