如何使用 selenium 和 python 保留 Firefox 缓存
How to retain Firefox cache using selenium and python
我的 selenium 自动化脚本 运行ning 在 firefox 上有一个小问题。每次重新启动容器时,我都需要再次进行身份验证。在 chrome 上,我可以使用缓存,但不能在 Firefox 上使用。我确实搜索了如何强制 firefox 使用缓存,但或者我遗漏了一些步骤,或者答案现在已经过时了。
这是“启动 firefox”的代码片段:
def start_firefox():
try:
profile = webdriver.FirefoxProfile(profile_directory = '/tmp/firefox')
driver = webdriver.Firefox(firefox_profile=profile,
service_log_path=os.path.devnull)
return driver
except Exception as e:
set_status('selenium', False)
logging.exception(e)
知道是什么阻止了 firefox 重复使用相同的缓存吗?
更新
我尝试使用“--profile /tmp/firefox”(需要导入 selenium.webdriver.firefox.options)运行 firefox,希望它能重用缓存,但它只是打开 firefox,因为它是第一个-运行 并在几秒钟后关闭。
def start_firefox():
try:
options = Options()
options.add_argument('--profile /tmp/firefox')
driver = webdriver.Firefox(service_log_path=os.path.devnull,
options=options)
return driver
except Exception as e:
set_status('selenium', False)
logging.exception(e)
仍在尝试随机的事情,看看我是否可以像在 chrome 和 options.add_argument('--user-data-dir=chrome-data')
上那样保留我的缓存。
我在一个回答中看到有人遇到了类似的问题,使用 webdriver_manager
能够解决它。我会link这里,但我丢失了,找不到。
from webdriver_manager.firefox import GeckoDriverManager
####
####
def start_firefox():
try:
options = Options()
options.add_argument('--profile')
options.add_argument('/tmp/firefox/')
driver = webdriver.Firefox(service_log_path=os.path.devnull,
executable_path=GeckoDriverManager().install(),
firefox_options=options)
return driver
except Exception as e:
set_status('selenium', False)
logging.exception(e)
我的 selenium 自动化脚本 运行ning 在 firefox 上有一个小问题。每次重新启动容器时,我都需要再次进行身份验证。在 chrome 上,我可以使用缓存,但不能在 Firefox 上使用。我确实搜索了如何强制 firefox 使用缓存,但或者我遗漏了一些步骤,或者答案现在已经过时了。
这是“启动 firefox”的代码片段:
def start_firefox():
try:
profile = webdriver.FirefoxProfile(profile_directory = '/tmp/firefox')
driver = webdriver.Firefox(firefox_profile=profile,
service_log_path=os.path.devnull)
return driver
except Exception as e:
set_status('selenium', False)
logging.exception(e)
知道是什么阻止了 firefox 重复使用相同的缓存吗?
更新 我尝试使用“--profile /tmp/firefox”(需要导入 selenium.webdriver.firefox.options)运行 firefox,希望它能重用缓存,但它只是打开 firefox,因为它是第一个-运行 并在几秒钟后关闭。
def start_firefox():
try:
options = Options()
options.add_argument('--profile /tmp/firefox')
driver = webdriver.Firefox(service_log_path=os.path.devnull,
options=options)
return driver
except Exception as e:
set_status('selenium', False)
logging.exception(e)
仍在尝试随机的事情,看看我是否可以像在 chrome 和 options.add_argument('--user-data-dir=chrome-data')
上那样保留我的缓存。
我在一个回答中看到有人遇到了类似的问题,使用 webdriver_manager
能够解决它。我会link这里,但我丢失了,找不到。
from webdriver_manager.firefox import GeckoDriverManager
####
####
def start_firefox():
try:
options = Options()
options.add_argument('--profile')
options.add_argument('/tmp/firefox/')
driver = webdriver.Firefox(service_log_path=os.path.devnull,
executable_path=GeckoDriverManager().install(),
firefox_options=options)
return driver
except Exception as e:
set_status('selenium', False)
logging.exception(e)