1 cookies automated-tests watir watir-webdriver
我已经使用 watir 创建了用于记住网站中的登录凭据的自动化测试。
在测试场景中关闭浏览器重新打开浏览器并检查是否会打开主页。测试重定向到登录,所以我想问:
watir 中的关闭浏览器方法是否会清除测试期间添加的缓存或 cookie?
默认情况下,当Watir::Browser.new
被调用时,它会创建一个新的配置文件,其中包含用于 cookie 和缓存的新本地存储。
当browser.quit
或browser.close
被调用时,它会破坏临时配置文件。它不会明确处理 cookie 或缓存,但是当临时配置文件被删除时,这些都会被消除。
您可以通过打开irb
并执行以下操作来验证这一点:
require 'watir-webdriver'
browser = Watir::Browser.new
browser.goto 'about:cache'
Run Code Online (Sandbox Code Playgroud)
观察路径Cache Directory
。对我来说,它看起来像/var/folders/fq/cjndhx054dj9kr6bls20pnh00000gn/T/webdriver-profile20140707-75724-15rrd9b/Cache
.
现在在irb
.
browser.quit
browser = Watir::Browser.new
browser.goto 'about:cache'
Run Code Online (Sandbox Code Playgroud)
观察路径不同。
要仅重用 cookie,您可以在调用 browser.quit 之前将 cookie 存储在实例或全局变量中,然后在实例化新浏览器后恢复 cookie。我使用类似于以下的代码进行测试,以确保在登录表单上选中“记住我”框。
# First test
browser = Watir::Browser.new
# browser logs in ...
$my_cookies = browser.cookies.to_a
browser.quit
# Second test
browser = Watir::Browser.new
$my_cookies.each do |cookie|
browser.cookies.add(cookie[:name], cookie[:value])
end
browser.goto 'my-test-site.com'
# test that username is remembered
Run Code Online (Sandbox Code Playgroud)
我相信可以使用特定的配置文件,同时通过创建一个Selenium::WebDriver::Firefox::Profile.new
并将配置文件作为参数传递给Watir::Browser.new :firefox, :profile => <my_profile_object>
.
关于配置文件的更多信息可以在Watir Webdriver Firefox Profiles上找到;Cookie信息也可用,但不是很完整。截至 2016 年 12 月 13 日,更新的链接现已包含在内。
归档时间: |
|
查看次数: |
1502 次 |
最近记录: |