Linux上缺少Selenium Firefox配置文件

4
我正在尝试在Ubuntu虚拟机上使用Selenium。但是我一直遇到困难,无论我做什么,都会出现以下对话框:Profile Missing。我不需要使用任何特定的配置文件。最初我认为Selenium\Gecko会为其实例创建一个临时配置文件。下面是我尝试过的所有方法。此外,我还尝试以sudo身份运行,并将配置文件的所有权设置为“nobody”,并将配置文件目录的权限设置为“777”。但这些都没有带来成果。我已经看到了其他关于此问题的SO帖子,但没有提供任何明显的答案,这也是我来这里的原因。
# create a new Firefox session
# binary = FirefoxBinary('/snap/bin/firefox')
# binary = FirefoxBinary('/usr/local/bin/geckodriver')
profile = webdriver.FirefoxProfile(profile_directory='/home/jaberwocky/snap/firefox/common/.mozilla/firefox/tm4nraze.selenium')
# profile.set_preference("browser.download.folderList",2)
# profile.set_preference("browser.download.manager.showWhenStarting",False)
# profile.set_preference("browser.download.dir", os.getcwd())
# profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
driver = webdriver.Firefox(firefox_profile=profile)
driver.implicitly_wait(20)
driver.get(base_url)

python_button = driver.find_element_by_class_name('sh-hide')
python_button.click()

Selenium版本:3.141.0

Firefox版本:65.0.2

Python版本:3.7.2

Linux发行版:Ubuntu Budgie 18.04.2 LTS

enter image description here

对于这个问题,实际上没有太多的相关信息。我在这里做错了什么?

更新:我找到了每个 gecko 执行的日志文件。以下是它所显示的内容:

ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
/snap/firefox/185/bin/desktop-launch: line 174: /home/addohm/snap/firefox/common/.config/user-dirs.dirs: No such file or directory
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
cp: cannot create regular file '/home/addohm/snap/firefox/common/.config/': Not a directory
/snap/firefox/185/bin/desktop-launch: line 177: /home/addohm/snap/firefox/common/.config/user-dirs.dirs.md5sum: No such file or directory
/snap/firefox/185/bin/desktop-launch: line 177: /home/addohm/snap/firefox/common/.config/user-dirs.locale.md5sum: No such file or directory
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
1551441977454   mozrunner::runner   INFO    Running command: "/snap/bin/firefox" "-marionette" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofile.kvmA0GU2ZdrC"
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
/snap/firefox/185/bin/desktop-launch: line 174: /home/addohm/snap/firefox/common/.config/user-dirs.dirs: No such file or directory
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
cp: cannot create regular file '/home/addohm/snap/firefox/common/.config/': Not a directory
/snap/firefox/185/bin/desktop-launch: line 177: /home/addohm/snap/firefox/common/.config/user-dirs.dirs.md5sum: No such file or directory
/snap/firefox/185/bin/desktop-launch: line 177: /home/addohm/snap/firefox/common/.config/user-dirs.locale.md5sum: No such file or directory
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/lib/$LIB/liblsp.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"

(firefox:27487): Gtk-WARNING **: Error loading theme icon 'dialog-warning' for stock: Icon 'dialog-warning' not present in theme Pocillo

没有~/snap/firefox/common/.config/这个目录,但是有一个~/snap/firefox/current/.config/

3个回答

15
似乎这个问题直接与使用Snap而非apt安装Firefox有关。
参考:https://ubuntuforums.org/showthread.php?t=2398478 它可以直接工作,无需特定配置文件。
不幸的是,如果你使用内置软件包管理器安装Firefox,它将通过Snap进行安装。所以要小心,使用以下命令进行安装:
sudo apt install firefox

它可以工作。但原因可能不同。我们应该知道Ubuntu提供了自己编译的Firefox版本。这可能会混淆。 - pankaj

5

Geckodriver试图从不同的目录中加载配置文件,如/home/username/snap/firefox...,因为它没有配置到snap安装。如果您仍想使用snap安装,因为它提供了apt安装不能提供的功能(就像我这种情况),那么您仍然可以按照以下方式操作:

from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument("-profile")
# put the root directory your default profile path here, you can check it by opening Firefox and then pasting 'about:profiles' into the url field 
options.add_argument("/home/username/snap/firefox/common/.mozilla/firefox/dhklfoeb.default-18236362302398")
browser=webdriver.Firefox(options=options)

无法运行... - undefined

0

我可能在我的问题表述上不够清晰。我并不需要使用任何特定的配置文件。我只是因为这个错误而开始尝试处理这个配置文件的事情。无论如何,我已经看到了你分享的帖子,但没有从中受益。 - addohm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接