【问题标题】:Trying to open Firefox via Selenium fails when running from VSCode从 VSCode 运行时尝试通过 Selenium 打开 Firefox 失败
【发布时间】:2020-01-15 18:19:44
【问题描述】:

我正在尝试通过 Selenium 打开 Firefox,但它失败了。它在 Chrome 上运行良好,但是当我尝试 Firefox 时,我无法让它工作。尝试创建webdriver对象失败,抛出selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

我执行的代码是:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time
import json
import os

if __name__ == "__main__":
    driver = webdriver.Firefox(executable_path='./geckodriver')

geckodriver 文件与 python 文件位于同一文件夹中。

网上搜索后发现可能是geckodriver和Firefox的版本不兼容,但我有Firefox 72.0.1-64bit,使用geckodriver v0.26.0-linux64。

编辑:我发现从终端正常运行时不会出现问题,但仅在从 VSCode 终端运行 python 代码时才会出现。有没有办法解决这个问题?

【问题讨论】:

  • 你能把这行上面的所有代码行都加进去吗?
  • @Jortega 我更新了问题。函数稍后在 main 中调用,参数用于函数。它们应该无关紧要。
  • 你怎么称呼这个文件?
  • 尝试在 {global parameters}{some functions} 注释掉的情况下运行它。
  • @Jortega 您的评论 ...尝试使用 {global parameters} 运行它并注释掉 {some functions}... 可能是最好的答案之一Selenium/VSCode 用户。为了未来的读者,我建议用这些信息构建一个答案。

标签: python selenium firefox visual-studio-code geckodriver


【解决方案1】:

尝试在 {global parameters}{some functions} 注释掉的情况下运行它。

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time
import json
import os

#{global parameters}
#{some functions}

if __name__ == "__main__":
    driver = webdriver.Firefox(executable_path=r'C:\\Path\\To\\geckodriver.exe')

如果上面的文本位于名为file_name.py 的文件中,我可以通过cd 到文件的位置并运行python file_name.py 从命令行执行此文件。

对于这个问题的提问者来说,尝试从 VSCode 终端运行它并没有成功。

【讨论】:

    【解决方案2】:

    我不是专家,所以我希望你能容忍我对此类的无知在与同样的错误斗争了一周后,我发现我需要在我所在环境的命令行 ($) 中键入以下行使用:

    export DISPLAY=":0"
    

    就我而言,这允许 Visual Studio Code 1.46.1 在运行带有 Selenium 3.141.0 和 Pytest 5.4.3 模块的 Python 3.6.9 时在我的控制台上打开一个输出屏幕。它对你有用吗?不知道。这是一件很简单的事情。不知道为什么。与会话显示输出路由有关吗?注意:当我想使用 Selenium 网络驱动程序运行 Python 程序而不会将会话显示输出发送到我的控制台时,我可以“无头”运行网络驱动程序。

    希望这有助于而不是阻碍......

    【讨论】:

      猜你喜欢
      • 2017-05-29
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 2015-04-07
      相关资源
      最近更新 更多