【发布时间】:2014-05-07 16:31:09
【问题描述】:
我将 selenium-webdriver 与 ruby 和 rspec2 一起使用。
我有很多网络测试自动化,我需要使用 IE,并且我需要使用干净的会话(特别是清除 cookie)运行每个测试。
在这种情况下,selenium-webdriver 使用 InternetExplorerDriver (IEDriverServer.exe),documentation 表示:
对于 cookie 的问题有 2 种解决方案(以及另一个会话 项目)在 InternetExplorer 的多个实例之间共享。
首先是以私有模式启动 InternetExplorer。后 InternetExplorer 将以干净的会话数据启动,并将 退出时不保存更改的会话数据。为此,您需要通过 2 驱动程序的特定功能:ie.forceCreateProcessApi with true 值和 ie.browserCommandLineSwitches 与 -private 值。请注意 它只适用于 InternetExplorer 8 和更新版本,以及 Windows 注册表
HKLM_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main路径应包含值为 0 的键 TabProcGrowth。第二个是在 InternetExplorer 启动期间清理会话。为了 这你需要通过特定的 ie.ensureCleanSession 能力 对司机的真正价值。这会清除所有正在运行的实例的缓存 InternetExplorer,包括那些手动启动的。
我的问题很简单: 谁能举例说明如何在 Ruby / Rspec2 中完成此操作。
例如,我目前有:
before(:each) do
@driver = Selenium::WebDriver.for :internet_explorer
@driver.manage.window.maximize
@base_url = "https://www.example.com/"
@accept_next_alert = true
@driver.manage.timeouts.implicit_wait = 30
@verification_errors = []
end
如何使用 Ruby/Rspec 将此类 IE 参数传递给 IE 驱动程序?
非常感谢您的帮助。
【问题讨论】:
标签: ruby internet-explorer selenium-webdriver rspec2