Leo*_*n92 6 ruby selenium webautomation capybara
我一直在使用 Capybara 和 selenium 网络驱动程序来了解网络自动化。我一直在尝试使用 Capybara 刷新特定页面。我见过一些方法,但它们每个都有问题,使它们在某些情况下不可行。
session.visit 链接什么也不做,因为会话已经在那个链接上了。我可以做 session.reset!但后来我失去了登录。
我见过的其他几种方法 - 不要使用 Capybara 的内置等待功能。这意味着如果服务器负载很重 - 或者在我的 DL/UL 速率受限的测试中,“刷新”会发生,但它会迅速尝试在下一页中查找尚不存在的字段,因为它尚未存在加载。
所以我的问题是具体的 - 如何使用 Capybara 的内置等待功能在不丢失登录会话的情况下刷新 Capybara 中的页面?
小智 5
您可以执行以下操作:
visit current_path
Run Code Online (Sandbox Code Playgroud)
或定义一个 RSpec 助手:
def reload_page
visit current_path
end
Run Code Online (Sandbox Code Playgroud)
由于您使用的是 selenium,因此您可以使用 Capybara 的 master 分支并调用
session.refresh
Run Code Online (Sandbox Code Playgroud)
或者您可以坚持使用当前的发行版本并致电
session.driver.browser.navigate.refresh
Run Code Online (Sandbox Code Playgroud)
如果您尝试刷新的页面是 POST,它可能会弹出“您确定要重新提交吗”模式,在这种情况下您需要类似的内容
session.accept_confirm do
session.driver.browser.navigate.refresh
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3234 次 |
最近记录: |