Windows 10システムでSelenium WebdriverとPython=を使用してブラウザーアクションをいくつか自動化しようとしています。しかし、この問題があります。Seleniumで起動されたFirefoxウィンドウが、自分がすでに存在していることを「認識」しません。ログインしてターゲットサイトがログインページに移動するので、Seleniumは実際にはプロファイルを使用せず、そのコピーのみを使用すると想定しました。
私が知りたいのですが:
編集:
from Selenium import webdriver
fp = webdriver.FirefoxProfile('C:/Users/<user name>/AppData/Roaming/Mozilla/Firefox/Profiles/abc3defghij2.ProfileName')
driver = webdriver.Firefox(fp)
driver.get("https://www.example.com/membersarea")
Seleniumは確かにプロファイルのコピーを使用しますが、問題が発生することはないはずです。あなたの問題は、セッションCookieと永続的なCookieのどちらにも関係があると思います。
On support.mozilla.org は、プロファイルに実際に保存されている情報を示すリストです。 Cookieはこれらの中にありますが、 session-cookies はcookies.sqliteに保存されないことに注意してください。これは、Seleniumがプロファイルに表示されないためにセッションを再構築できない理由です。
ただし、多くのサイトでは、ログインページにremember-me
またはstay-logged-in
オプションを提供しています。これらのオプションを使用すると、セッションを復元できる永続的なCookieが保存されます。次のスクリプトを使用して、Gmailでこれをテストしました。
from Selenium import webdriver
url = "https://mail.google.com"
fp = webdriver.FirefoxProfile('/Users/<username>/Library/Application Support/Firefox/Profiles/71v1uczn.default')
driver = webdriver.Firefox(fp)
driver.get(url)
stay-logged-in
オプションを有効にしてGmailにログインした後でこのスクリプトを実行すると、Seleniumが受信トレイにアクセスできます。 stay-logged-in
オプションが有効になっていない場合、ブラウザを閉じるとセッションが破棄されるため、Seleniumはセッションを復元できません。
以下のスクリーンショットは、セッションCookieが実際にcookies.sqliteに保存されていないため、Seleniumで使用してもプロファイルに表示されないことを示しています。