【问题标题】:No-Cache Refresh In Robot Framework Selenium2Library机器人框架 Selenium2Library 中的无缓存刷新
【发布时间】:2015-12-24 01:14:02
【问题描述】:

我有一个用 python 机器人框架编写的测试脚本,它可以浏览网站并测试其页面。网站有时需要从服务器刷新其所有内容,即它需要无缓存刷新。

Robot Framework selenium2library 有一个 reload page 方法,它只是执行 Refresh-If-Modified。在 Python 中,我可以使用 driver.refresh(),它的作用相同。

我在机器人框架中尝试了Press Key,在python中尝试了driver.send_keys(Keys.COMMAND + Keys.F5)driver.get(url);他们都没有成功!

知道怎么做吗?

为了澄清,No-Cache Refresh 从其服务器检索所有网站数据,无论其在服务器上的更改如何,但 Refresh-If-Modified 首先向服务器发送请求并要求更改,然后它只是请求检索修改数据。

【问题讨论】:

  • 使用的是哪些版本?
  • @Rao, robotframework-2.9, robotframework_selenium2library-1.7.3, python2.7;我的操作系统是 windows 7 - 64 位版本。
  • 你的意思是清理浏览器缓存?因为您似乎已经尝试过刷新页面(希望有效)
  • @Rao,请检查我的编辑。
  • 很抱歉再次回来。 No-Cache RefreshRefresh-Is-Modify 是什么意思?这些 Selenium2Library 的关键字是我在文档中找不到的吗?我只能找到Reload Page

标签: python selenium webdriver robotframework


【解决方案1】:

当由 selenium 的机器人启动这些浏览器时,Chrome 和 Firefox 以不同的方式处理缓存。

为了确保清除浏览器缓存,我使用关闭所有浏览器关键字,因为它会重置浏览器缓存 (http://robotframework.org/Selenium2Library/doc/Selenium2Library.html#Close%20All%20Browsers),然后我再次打开浏览器。

所以也许你也会使用 Delete All Cookies 关键字

【讨论】:

    【解决方案2】:

    您可以通过 javascript 的 location.reload() 来实现,将 true 传递给调用 - https://developer.mozilla.org/en-US/docs/Web/API/Location/reload

    Execute Javascript    window.location.reload(true);
    

    然而YMMV - 一些浏览器试图超越它,这是 js 开发人员的常见问题。

    【讨论】:

      猜你喜欢
      • 2016-04-28
      • 2015-09-28
      • 2021-06-10
      • 2012-03-26
      • 2016-08-17
      • 2021-04-10
      • 1970-01-01
      • 2020-02-07
      • 2017-11-12
      相关资源
      最近更新 更多