【问题标题】:Currently geckodriver for freebsd with python 3.7 (firefox)目前用于带有 python 3.7 (firefox) 的 freebsd 的 geckodriver
【发布时间】:2020-11-23 14:20:43
【问题描述】:

我在使用 geckodriver 在我的 freebsd selenium 中进行设置时遇到问题。 我得到错误

Traceback (most recent call last):
  File "skriptas.py", line 17, in <module>
    driver = Firefox(executable_path=path, options=options)
  File "/home/m=MyUserName/.local/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()
  File "/home/MyUserName/.local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/usr/local/lib/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/usr/local/lib/python3.7/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/home/MyUserName/skriptas/forGeckodriver/geckodriver'

我阅读了很多关于它的内容,发现OSError: [Errno 8] Exec format error: 的错误意味着可能安装了适用于不同操作系统/平台的 geckodriver 版本。

我尝试从here安装

  • geckodriver-v0.28.0-linux32.tar.gz

  • geckodriver-v0.28.0-linux64.tar.gz

我在 python 中的代码

from selenium.webdriver import Firefox
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support import expected_conditions as expected
from selenium.webdriver.support.wait import WebDriverWait
import logging

FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
logging.basicConfig(level=logging.DEBUG, format=FORMAT)


path='/home/MyUserName/skriptas/forGeckodriver/geckodriver'

options = Options()
options.add_argument('-headless')
driver = Firefox(executable_path=path, options=options)



driver.get("https://www.verivox.de/stromvergleich/vergleich/#/?plz=10555&persons=on&usage=3500&bonus=OnlyCompliant&profile=H0&product=electricity&source=1&q=WzYsMCwxLDEsMSwxLDEsMiwyMCwwLDEsNzQxMTIyLCI3MTA4NSIsMSwyNDAsMjQwLDM1MDAsMCwwLDAsOTk5LC0xLC0xLC0xLDAsMCwiVG90YWxDb3N0cyIsIkFzY2VuZGluZyIsIk5vbmUiLDM4LCJBbm51YWxDb3N0VmlldyIsMF0%3D&partnerid=1")



allheader=WebDriverWait(driver,20).until(expected.visibility_of_all_elements_located((By.CSS_SELECTOR,"li[class='result-item'] .result-name-area>.result-name")))
for header in allheader:
     print("Header: " + header.text)

请帮助我,我们将不胜感激。 如果我错了并且错误不是因为版本错误,请在答案中写下修复。

【问题讨论】:

  • 如果从命令行执行 geckodriver 二进制文件会发生什么?解压下载的 tar 文件并尝试使用geckodriver --version 运行二进制文件。输出是什么?另外,您确定您安装了最新版本的 Firefox?
  • 我的 Firefox 版本是 Mozilla Firefox 83.0,geckodriver --version 输出 geckodriver: Command not found。我只将文件从这里放到我的 freebsd 服务器上,并为它指定路径。
  • 解压 tar 文件后,使用完整路径运行 geckodriver:/home/MyUserName/skriptas/forGeckodriver/geckodriver --version。输出是什么?
  • 版本现在是 0.26,最后是 0.28。感谢您尝试帮助我。

标签: python selenium selenium-webdriver geckodriver


【解决方案1】:

我从here 下载 geckodriver 然后说你没有权限,所以我写

chmod +x /home/MyUserName/skriptas/forGeckodriver/geckodriver

现在正在工作。我认为问题出在版本上,也许 freebsd 不适用于 geckodriver-v0.28.0 版本

【讨论】:

    猜你喜欢
    • 2019-06-30
    • 2018-04-21
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    相关资源
    最近更新 更多