如何用Selenium自动刷新chromeDriver?

时间:2013-07-21 05:54:02

标签: selenium refresh

以前我一直在使用chrome Auto Refresh插件。但是,现在我的代码有多个ChromeDriver实例打开和关闭,我无法使用自动刷新。此外,在新计算机上安装Auto Refresh非常麻烦。

是否有任何方法可以刷新驱动程序(如果驱动程序没有变化则模拟F5说每15秒仍然不动)与Selenium类似于谷歌自动刷新?

3 个答案:

答案 0 :(得分:7)

refresh是一个内置命令。

driver = webdriver.Chrome()
driver.get("http://www.google.com")
driver.refresh()

如果你没有镀铬驱动程序,可以在这里找到: https://code.google.com/p/chromedriver/downloads/list

将二进制文件放在与您正在编写的python脚本相同的文件夹中。 (或者将其添加到路径或其他内容,更多信息请点击此处:https://code.google.com/p/selenium/wiki/ChromeDriver

编辑:

如果你想刷新10秒或者其他东西,只需用一个循环和一个延迟包裹刷新线。例如:

import time
while(True):
    driver.refresh()
    time.sleep(refresh_time_in_seconds)

如果您只想刷新页面在此期间没有更改,请跟踪您所在的页面。 driver.current_url是当前页面的网址。所以把它们放在一起就是:

import time
refresh_time_in_seconds = 15
driver = webdriver.Chrome()
driver.get("http://www.google.com")
url = driver.current_url
while(True):
    if url == driver.current_url:
        driver.refresh()
    url = driver.current_url
    time.sleep(refresh_time_in_seconds)

答案 1 :(得分:3)

有两种方法可以做到这一点。 1.我们可以使用刷新方法

driver.get(“some website url”);    driver.navigate()刷新();

  1. 我们可以使用动作类并模仿F5按

    动作行为=新行动(司机); act.SendKeys(Keys.F5).perform();

答案 2 :(得分:1)

如果您编写必须运行的单元测试,就像每次必须打开/刷新新的浏览器会话一样,您可以使用注释前的方法:

@Before
public void refreshPage() {
    driver.navigate().refresh();
}

如果所有测试都单独成功(绿色)但一起失败,原因可能是您需要等待页面上的某些资源可用,所以您还需要处理它,设置这样的超时:

public WebElement getSaveButton() {
    return findDynamicElementByXPath(By.xpath("//*[@id=\"form:btnSave\"]"), 320);
}

320很长一段时间,但你必须确保你有足够的时间来完成测试所需的一切。