我正在尝试在 jenkins 实例上使用 firefox 运行一些 webdriver 测试。测试需要通过 hoverfly 代理服务器。我已经配置了一个包含代理设置和一些附加证书的 Firefox 配置文件。在我的本地 Mac 和 Windows 环境中,配置文件在有无无头标签的情况下都能正确加载,并且测试都按预期运行。在运行 linux 的 Jenkins 实例上,如果我不加载配置文件,则测试会运行,但其中一些测试会失败,因为它没有检索到正确的数据。当我加载配置文件时,我遇到了这个错误,据我所知,这是由 Firefox 无法启动引起的。我检查了使用fs.existSync(profilePath)
以确保文件夹路径确实存在。
Uncaught WebDriverError: Process unexpectedly closed with status 0
at Object.throwDecodedError (node_modules/selenium-webdriver/lib/error.js:514:15)
at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:519:13)
at /home/jenkins/run-forrest-run-agent-nspace/workspace/DynUI_Jenkin_Dev/node_modules/selenium-webdriver/lib/http.js:441:30
at processTicksAndRejections (internal/process/task_queues.js:95:5)
From: Task: WebDriver.createSession()
at Function.createSession (node_modules/selenium-webdriver/lib/webdriver.js:769:24)
at Function.createSession (node_modules/selenium-webdriver/firefox/index.js:521:41)
at createDriver (node_modules/selenium-webdriver/index.js:170:33)
at Builder.build (node_modules/selenium-webdriver/index.js:645:16)
at Function.BrowserConfig.getDriver (dist/test/webdriver/config/BrowserConfig.ts:27:12)
at Context.<anonymous> (dist/test/webdriver/vbcookbook/dynamic-table-sdp-edit/demo-test-spec.ts:12:28)
at processImmediate (internal/timers.js:464:21)
以下是我如何构建 webdriver builder。
let firefox = require('selenium-webdriver/firefox');
const profilePath = "./path/to/profile";
let firefoxOptions = new firefox.Options();
firefoxOptions.setProfile(profilePath);
// firefoxOptions.headless();
// firefoxOptions.windowSize({height:1920,width:1080});
return new Builder()
.forBrowser('firefox')
.setFirefoxOptions(firefoxOptions)
.build();
Firefox 版本:Mozilla Firefox 89.0.2 selenium-webdriver:3.6.0
我不确定问题是什么或如何调试它。