如何使用selenium-webdriver在浏览器上刷新页面?

Cod*_*ver 22 ruby selenium-webdriver

按照下面的代码部分:

driver.get "https://example.com/"

element = driver.find_element :name => "username"
element.send_keys "*****"
element = driver.find_element :name => "password"
element.send_keys "*****"
element.submit
Run Code Online (Sandbox Code Playgroud)

现在点是在driver浏览器上打开URL时,有时候脚本必须输入用户名和密码的下一页,而不是来 - 这会导致脚本失败.一些中间页面要求我们点击"重试按钮"或"刷新页面".因此,只要发生这种情况,脚本就会停止执行,因为没有得到上述元素.

那么有没有办法在进入"登录"页面之前用"睡眠"刷新该中间页面,以便脚本可以一次运行?

Jus*_* Ko 19

您可以使用以下Navigation#refresh方法:

driver.navigate.refresh
Run Code Online (Sandbox Code Playgroud)

  • 为#<RSpec :: ExampleGroups ...>`获取`undefined局部变量或方法`driver' (2认同)

Dan*_*ohn 19

正如@Nakilon在评论中提到的,在Capybara中使用非Poltergeist驱动程序时,请使用以下内容刷新当前页面:

page.driver.browser.navigate.refresh
Run Code Online (Sandbox Code Playgroud)

但是对于通用修复,请使用:

page.evaluate_script 'window.location.reload()'
Run Code Online (Sandbox Code Playgroud)


Per*_*rcy 13

对于Capybara,我认为Tommyixi的评论是最好的:

visit current_path


mor*_*itz 12

对于水豚,我推荐

page.evaluate_script("window.location.reload()")
Run Code Online (Sandbox Code Playgroud)

这也适用于poltergeist/phantomjs


gst*_*oup 6

在这种情况下,我编写了一些代码来检查输入字段是否存在。如果不存在则刷新。

driver.refresh()
Run Code Online (Sandbox Code Playgroud)