0

好吧,所以我浪费了一整天的自我研究并且失败了。所以帮忙?我创建了一个配置文件,我要做的就是在该配置文件下打开 Firefox,并将其设置为默认值。

这是代码

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

ff_options = Options()
#profile
binary = FirefoxBinary("C:\\Program Files\\Mozilla Firefox\\firefox.exe")
profile = webdriver.FirefoxProfile('C:\\Users\\bravoj\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\7k4o5psw.CCC Deafualt')
ff_driver = webdriver.Firefox(firefox_profile=profile, firefox_binary=binary, executable_path='C:\\Users\\bravoj\Downloads\\geckodriver.exe')
#fire fox driver

ff_driver.get('about:profiles')
4

1 回答 1

0

Selenium 确实使用了配置文件的副本,尽管这不应该引起任何问题。我认为您的问题更多地与会话 cookie 与持久性 cookie 有关。

在 support.mozilla.org 上有一个列表,表明您的个人资料中实际存储了哪些信息。请注意,cookie 就在其中,但是 session-cookie 不存储在 cookies.sqlite 中,这就是 Selenium 无法重建会话的原因,因为它没有出现在配置文件中。

但是,许多站点在其登录页面上提供了记住我或保持登录选项,如果使用,将存储一个持久性 cookie,通过该 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)
于 2019-11-20T04:19:58.873 回答