当前位置: 首页 > 知识库问答 >
问题:

Python/Selenium Firefox驱动程序在Ubuntu上失败,在Windows上正常

钮巴英
2023-03-14

我在Ubuntu(Amazon EC2 t2.small)上安装了以下软件:geckodriver:0.24.0firefox:68.0.1selenium:3.141.0

在Windows上,我有:geckodriver:0.24.0,firefox:67.0.4,selenium:3.141.0

我不知道不同的火狐版本是否是问题所在,但是我在Ubuntu上下载67.0.4时遇到了问题(以下)。我将提取的火狐文件夹 /usr/bin/firefox但是当我运行火狐-v时,它给我命令“火狐”找不到,但这是另一个问题。

我正在运行以下代码块:

share_url =  ( driver.current_url )

...code here...

# scroll down a couple times
for _ in range(4):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(1)

不同版本的逻辑完全相同。它也在早些时候起作用。

这在Ubuntu上失败,并出现以下错误,在Windows上运行良好。

Traceback (most recent call last):
  File "/home/ubuntu/cashmuny/tiktok/main.py", line 882, in <module>
    compilationBody(language_code, directory, clips, len(channels.channels[language_code]), 45, record_ids, get_vids = g
et_vids, min_video_size=min_video_size, headless=headless_compilation)
  File "/home/ubuntu/cashmuny/tiktok/main.py", line 448, in compilationBody
    getMediaClips(channels.LANG_TO_COUNTRY[language_code], directory, clip[0], clip[1], record_ids, min_video_size, head
less=headless)
  File "/home/ubuntu/cashmuny/tiktok/main.py", line 353, in getMediaClips
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 636, in execute_sc
ript
    'args': converted_args})['value']
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_r
esponse
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchWindowException: Message: Browsing context has been discarded
Traceback (most recent call last):
  File "/home/ubuntu/cashmuny/tiktok/main.py", line 844, in <module>
    compilationBody(language_code, directory, clips, len(channels.channels[language_code]), 45, record_ids, get_vids = get_vids, min_video_size=min_video_size)
  File "/home/ubuntu/cashmuny/tiktok/main.py", line 427, in compilationBody
    getMediaClips(channels.LANG_TO_COUNTRY[language_code], directory, clip[0], clip[1], record_ids, min_video_size)
  File "/home/ubuntu/cashmuny/tiktok/main.py", line 283, in getMediaClips
    share_url =  ( driver.current_url )
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 669, in current_url
    return self.execute(Command.GET_CURRENT_URL)['value']
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
**selenium.common.exceptions.WebDriverException: Message: Failed to decode response from marionette**

共有1个答案

慕宪
2023-03-14

我的经验是,Selenium对它运行的浏览器版本非常敏感。我一定会努力解决你安装67.0.4时遇到的任何问题,因为我很确定这会让你再次上路。

 类似资料:
  • 我正在使用appium来自动化android应用程序。在这种情况下,无法对文本字段执行sendkeys():单击Add Customer选项。翻开了新的一页。我正在尝试在文本字段中输入值。我能够使用XPath找到页面上的文本字段。我可以点击文本字段。但是当我执行sendkeys()时,它失败了。参考下面的截图。 链接:2-添加客户-打开新页面(第2页)并尝试输入详细信息

  • 我正在学习关于heroku/facebook集成的heroku教程(但我怀疑这个问题与facebook集成无关),结果我被困在了我应该开始foreman的阶段(我已经安装了用于windows的heroku installbelt,其中包括foreman): 给出: 由于我在这方面完全是一个笨蛋,我不确定我这里的问题是否是在遵循Python/flask Heroku教程时在“Foreman star

  • 下面是我的discord music player bot,我用Maven和Java8编译并安装了它,使用了以下步骤: 下面是我的pom.xml 发送播放音乐的命令后出错... 我曾尝试将此方法改为Cp1252编码,但仍然失败。

  • 无法在命令提示符下安装pyaudio。 pip install pyaudio python-m pip install PyAudio python pip安装python-pyaudio

  • 然后我按照教程在ubuntu上安装docker ce,一切都很顺利,可以运行一个应用程序。 我安装了Docker版本18.09.6,build 481BC77 我完成了unix的后安装,使用exit注销并重新启动。 我无法运行docker desktop并在以下未解决的关闭问题上碰壁:https://github.com/docker/for-win/issues/74

  • 我试图在windows server上安装Elasticsearch 7.16.2,但在安装过程中,我发现以下错误。 安装服务:"elasticsearch-service-x64"使用ES_JAVA_HOME(64-bit):"C:\Program Files\Java\jdk-17.0.1"-Dhs_err_pid=60;-D1m=10;-XX: AlwaysPreTouch;-Xsses.n