在Selenium IDE中清除Firefox缓存

sna*_*ile 11 firefox selenium

我正在使用Selenium IDE来测试Web应用程序.有时我的测试会成功,即使它们应该失败.原因是浏览器碰巧从缓存加载了以前版本的页面,而不是加载该页面的较新版本.换句话说,我可能会在不知道它的情况下向我的应用程序引入一个错误,因为在加载以前的工作版本而不是加载新的错误版本之后测试可能会通过.

我能想到的最好的解决方案是在运行测试之前删除浏览器缓存.我有一个Selenium脚本,我在运行测试之前运行set-up selenium命令.是否有selenium命令来清除Firefox缓存?或者,是否有另一种方法可以防止在测试期间从缓存中加载页面?

小智 8

在python中,这应该禁用firefox缓存:

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.cache.disk.enable", False)
profile.set_preference("browser.cache.memory.enable", False)
profile.set_preference("browser.cache.offline.enable", False)
profile.set_preference("network.http.use-cache", False)
driver = webdriver.Firefox(profile)
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人


And*_*ect 0

免责声明:我以前从来没有这样做过(清除cookies对我来说已经足够了),但从我所看到的来看,这是Selenium当前版本中缺乏的功能,尽管从最近的变更日志来看,它看起来就像开发人员正在努力制定一种标准方法来做到这一点。在2.33iedriverserver,他们有以下变更说明:

引入了在启动 IE 之前清理浏览器缓存的功能。此版本引入了 ie.ensureCleanSession 功能,该功能将在启动 IE 之前清除浏览器缓存、历史记录和 cookie。使用此功能时,请注意,这会清除所有正在运行的 Internet Explorer 实例的缓存。在尝试运行 IE 驱动程序的多个实例时使用此功能可能会导致意外行为。请注意,这也会导致启动浏览器时的性能下降,因为驱动程序将等待缓存清除过程完成后再实际启动 IE

http://selenium.googlecode.com/git/cpp/iedriverserver/CHANGELOG

为此,您可以在映射中DesiredCapabilities使用 .在驱动程序创建时指定这一点ensureCleanSession

http://code.google.com/p/selenium/wiki/DesiredCapability

由于您使用的是 Firefox,因此您似乎无法使用本机方式来执行此操作。如果你还没有尝试过driver.manage().deleteAllCookies();,我会尝试一下,看看它是否能让你到达你需要的地方。