从 bash 脚本调用 python 文件时,程序无法识别 PATH 中的 geckodriver
Program not recognising geckodriver in PATH when calling a python file from a bash script
我正在尝试使用 bash 脚本调用 python 测试文件。该脚本当前读取 -
python C:\inetpub\wwwroot\BE\BE\Tests\test_BE.py %*
python 脚本 运行 从命令行单独调用时非常完美。该文件使用 selenium webdriver 和 geckodriver,两者都在 PATH 变量中。 (正如通过命令行调用时文件工作正常所证明的那样)。我还添加了 C:\Program Files (x86)\Mozilla Firefox\,因为这是针对类似问题的其他堆栈解决方案中的建议。但是,当我 运行 bash 文件时,我得到以下错误:
selenium.common.exceptions.WebDriverException: Messaage: 'geckodriver.exe' executable needs to be in PATH.
我不确定如何解决这个问题,因为可执行文件已经在路径中。任何见解将不胜感激。
EDIT 我目前定义 geckodriver 和驱动程序等的路径:
gecko = os.path.normpath(os.path.join(os.path.dirname(__file__), 'geckodriver'))
binary = FirefoxBinary('C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, executable_path=gecko+'.exe')
好的,所以 Raman 建议的解决方案是删除 gecko 变量,并将 geckodriver.exe 的完整路径放在驱动程序变量中,即:
driver = webdriver.Firefox(firefox_binary=binary, executable_path='C:\path\to\executable')
一旦我这样做了,python 脚本就完美地工作了。
我正在尝试使用 bash 脚本调用 python 测试文件。该脚本当前读取 -
python C:\inetpub\wwwroot\BE\BE\Tests\test_BE.py %*
python 脚本 运行 从命令行单独调用时非常完美。该文件使用 selenium webdriver 和 geckodriver,两者都在 PATH 变量中。 (正如通过命令行调用时文件工作正常所证明的那样)。我还添加了 C:\Program Files (x86)\Mozilla Firefox\,因为这是针对类似问题的其他堆栈解决方案中的建议。但是,当我 运行 bash 文件时,我得到以下错误:
selenium.common.exceptions.WebDriverException: Messaage: 'geckodriver.exe' executable needs to be in PATH.
我不确定如何解决这个问题,因为可执行文件已经在路径中。任何见解将不胜感激。
EDIT 我目前定义 geckodriver 和驱动程序等的路径:
gecko = os.path.normpath(os.path.join(os.path.dirname(__file__), 'geckodriver'))
binary = FirefoxBinary('C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, executable_path=gecko+'.exe')
好的,所以 Raman 建议的解决方案是删除 gecko 变量,并将 geckodriver.exe 的完整路径放在驱动程序变量中,即:
driver = webdriver.Firefox(firefox_binary=binary, executable_path='C:\path\to\executable')
一旦我这样做了,python 脚本就完美地工作了。