Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从VSCode运行时,尝试通过Selenium打开Firefox失败_Python_Selenium_Firefox_Visual Studio Code_Geckodriver - Fatal编程技术网

Python 从VSCode运行时,尝试通过Selenium打开Firefox失败

Python 从VSCode运行时,尝试通过Selenium打开Firefox失败,python,selenium,firefox,visual-studio-code,geckodriver,Python,Selenium,Firefox,Visual Studio Code,Geckodriver,我试图通过Selenium打开Firefox,但失败了。它在Chrome上运行得很好,但当我尝试Firefox时,我无法让它运行。尝试创建webdriver对象时失败,抛出selenium.common.exceptions.WebDriverException:消息:无效参数:无法终止已退出的进程 我执行的代码是: from selenium import webdriver from selenium.common.exceptions import NoSuchElementExcepti

我试图通过Selenium打开Firefox,但失败了。它在Chrome上运行得很好,但当我尝试Firefox时,我无法让它运行。尝试创建webdriver对象时失败,抛出
selenium.common.exceptions.WebDriverException:消息:无效参数:无法终止已退出的进程

我执行的代码是:

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-64位,并且使用geckodriver v0.26.0-linux64


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

试着用
{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')
我可以通过
cd
ing到文件位置并运行
python file_name.py
从命令行执行此文件,假设上面的文本位于名为
file_name.py
的文件中


并不是说试图从VSCode终端运行此命令对提问者来说是不成功的。

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

export DISPLAY=":0"
在我的例子中,当使用Selenium 3.141.0和Pytest 5.4.3模块运行Python 3.6.9时,这允许Visual Studio代码1.46.1在我的控制台上打开一个输出屏幕。对你有用吗?不知道。这是一件如此简单的事情,起了作用。不知道为什么。与会话显示输出路由有关吗?注意:当我想使用SeleniumWebDriver运行Python程序而不将会话显示输出发送到控制台时,我可以“headless”运行webdriver


希望这对你的帮助大于阻碍…

你能添加这一行以上的所有代码行吗?@Jortega我更新了这个问题。函数稍后在main中调用,参数用于函数。它们应该没有多大关系。你如何调用这个文件?试着用注释掉的
{global parameters}
{some functions}
运行它。@Jortega你的注释…试着用注释掉的{global parameters}和{some functions}运行它。。。可能是Selenium/VSCode用户的最佳答案之一。我建议用这些信息构建一个答案,以利于未来的读者。