如何使用selenium和python保留Firefox缓存

2024-03-28 08:58:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在firefox上运行的selenium自动化脚本有一个小问题。每次重新启动容器时,我都需要再次进行身份验证。在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)

仍然在尝试一些随机的东西,看看我是否可以像使用options.add_argument('--user-data-dir=chrome-data')的chrome一样保留缓存


1条回答
网友
1楼 · 发布于 2024-03-28 08:58:22

我在一个答案中读到有人有类似的问题,使用webdriver_manager就能够解决它。我想把它链接到这里,但我丢了,找不到了

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)

相关问题 更多 >