例如,在以下代碼中打開瀏覽器,手動登錄谷歌。
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "webdrivers"
gem "capybara", require: "capybara/dsl"
end
Capybara.current_driver = :selenium_chrome
Capybara.visit("https://www.google.co.jp/")
gets
但是,如果我再執行一次,登錄狀態就會被取消,如果是2FA的話,就很麻煩了。
有什么好辦法嗎?
uj5u.com熱心網友回復:
Capybara 被設計為一個測驗框架,而不是一個網路抓取框架(盡管有些人為此使用 if)。因此,測驗是相互隔離的,Capybara 做了一些作業來嘗試確保這種情況發生。這意味著在每個測驗中,如果有必要,您需要重新進行身份驗證,并且最好使用被測應用程式正在使用的任何身份驗證庫的測驗模式來處理。
相反,如果您使用 Capybara 進行網路抓取,您可以考慮配置 selenium 驅動程式以使用特定的用戶組態檔,以便保存和重用 cookie。您可能還需要覆寫 Capybaras session#reset 方法以防止清除 cookie,但 Capybara 確實不是為該用例設計的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/484991.html
上一篇:學習編碼,未定義變數的煩惱
