Selenium geckodriver:配置文件丢失:无法加载您的 Firefox 配置文件

问题描述 投票:0回答:5

我在以下代码中使用 geckodriver:

import time
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
url = 'https://www.idealista.com/venta-viviendas/barcelona/eixample/la-dreta-de-l-eixample/?ordenado-por=fecha-publicacion-desc'
options = Options()
options.headless = False
driver = webdriver.Firefox(options=options, executable_path='/home/kevin/Desktop/Inmosoft/geckodriver')
driver.get(url)
time.sleep(10)

但是每次我尝试执行时都会出现此错误:

我尝试按照此链接中的信息使用

firefox -P
在 Firefox 中创建另一个配置文件 https://support.mozilla.org/en-US/kb/how-run-firefox-when-profile-missing -无法访问

看起来 geckodriver 与 firefox 是一个完全不同的实例,并且它不使用相同的配置文件,我如何在使用 geckodriver 时绕过此错误并创建配置文件?

python selenium geckodriver
5个回答
20
投票

我也遇到过同样的问题。就我而言,我使用的是 ubuntu 22.04,问题是 Firefox 默认情况下是通过 snap 安装的。解决办法是卸载firefox并安装它而不使用snap。 这是执行此操作的链接。

删除 snap firefox 并将其安装为 .dev


11
投票

TL/DR;设置自定义

TMPDIR
https://github.com/mozilla/geckodriver/issues/2010

找到启动 geckodriver 并崩溃的测试 例如

bundle exec rspec spec/features/sessions_spec.rb

当作业失败时,通过

杀死它
ctrl+z # push job to background
kill %% # kill last job

# to kill all jobs do: sudo kill -9 `jobs -p -s`

通过

direnv
设置自定义临时目录,如下所示:

# .envrc

export TMPDIR="$HOME/tmp/some-project"

您必须通过

mkdir -p ~/tmp/some-project

创建目录

10
投票

我通过使用 snap 包中的

geckodriver
解决了 Ubuntu 22.04 上的问题。例如,我有目录
$HOME/bin
,位于
$PATH
中。从那里我 通过
firefox.geckodriver
 链接至 
$HOME/bin/geckodriver

$ ln -s /snap/bin/firefox.geckodriver geckodriver

可以通过

找到
firefox.geckodriver

的位置
$ whereis firefox.geckodriver

0
投票

我刚刚重新安装了 Firefox,它很有帮助。

sudo snap remove firefox
sudo snap install firefox

0
投票

当您运行代码时,请确保将 env variavle TMPDIR 设置为脚本用户有权读写的本地:

import os 
os["TMPDIR"] = "path to ok location access read and write"
© www.soinside.com 2019 - 2024. All rights reserved.