【发布时间】: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