[英]How can I access the default webdriver for Selenium 2 with Rails 3 Rspec and Capybara?
[英]How to access cookies (Capybara/Selenium Chrome Webdriver)
我已經能夠找到大量聲稱page.driver.cookies
應該可以工作的示例,但是Selenium::WebDriver::Chrome::Driver
上沒有這種方法(這就是page.driver
)。
我一直在嘗試用 pry 挖掘任何響應cookies
、 cookie_jar
、 set_cookie
或clear_cookies
的東西,但似乎什么都沒有。 不在page
、 page.driver
或page.driver.browser
。
我也不太明白閱讀 cookies 不是測試中的事情(RackTest 驅動程序公開#cookie_jar
但Rack::Test::Methods
僅轉發set_cookie
和clear_cookies
)。 為什么我不應該測試在某些條件下設置 cookie 的中間件?
您不應該直接測試 cookies 的原因是因為功能/系統測試是錯誤的地方。 這些類型的測試旨在從用戶的角度進行測試,用戶實際上並沒有看到 cookies,他們只是看到了 cookies 啟用的行為。 因此,在 Capybara 測試中,您應該只測試 cookies 啟用的行為,而不是設置實際的 cookies。 cookies 的設置/清除確實應該在 controller 中進行測試或請求測試。
如果您仍然堅持直接訪問 cookies 則可以使用 JS 通過evaluate_script
或通過 selenium 驅動程序特定方法page.driver.browser.manage.all_cookies
等訪問它們 - 盡管任何時候您調用page.driver.xxx
您都是可能做一些你不應該做的事情。
僅僅通過閱讀本文檔,您是否嘗試過這樣的事情:
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
driver.get 'https://www.example.com'
# Adds the cookie into current browser context
driver.manage.add_cookie(name: "key", value: "value")
ensure
driver.quit
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.