我正在使用Nightwatch构建一套自动化集成测试,这是Selenium WebDriver API的Node包装器 . 我能够让它适用于Chrome,但不适用于Firefox(或Safari) .
我认为这个问题与GeckoDriver和Firefox Driver有关 . 我已经将Nightwatch配置为在 nightwatch.json
中使用GeckoDriver . 但Selenium似乎正在寻找基于 nightwatch -e firefox --verbose
的终端输出的Firefox驱动程序 . 见下文:
INFO Request: POST /wd/hub/session/2c156cf4-10cb-44b2-8b1f-c12312b4633f/url
- data: {"url":"localhost:9000"}
- headers: {"Content-Type":"application/json; charset=utf-8","Content-Length":24}
ERROR Response 500 POST /wd/hub/session/2c156cf4-10cb-44b2-8b1f-c12312b4633f/url (1218ms) { state: 'unknown error',
sessionId: '2c156cf4-10cb-44b2-8b1f-c12312b4633f',
hCode: 1111219279,
value:
{ additionalInformation: '\nDriver info: org.openqa.selenium.firefox.FirefoxDriver\nCapabilities ...
这是我的Nightwatch配置文件:
{
"src_folders": ["./nightwatch/tests"],
"output_folder": "./nightwatch/reports",
"custom_commands_path": "",
"custom_assertions_path": "",
"page_objects_path": "./nightwatch/tests/pages",
"globals_path": "",
"selenium": {
"start_process": true,
"server_path": "./nightwatch/selenium-server-standalone-3.4.0.jar",
"log_path": false,
"cli_args": {
"webdriver.chrome.driver": "./nightwatch/drivers/chromedriver",
"webdriver.gecko.driver": "./nightwatch/drivers/geckodriver"
}
},
"test_settings": {
"default": {
"desiredCapabilities": {
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
"chrome": {
"desiredCapabilities": {
"browserName": "chrome"
}
},
"firefox": {
"desiredCapabilities": {
"browserName": "firefox",
"marionette": true
}
}
}
}
为了更好的衡量,这是我试图在我的测试中访问的 nightwatch/pages/index.js
文件:
module.exports = {
url: 'localhost:9000',
elements: {
// stuff
}
}
1 回答
对于它的 Value ,目前我们决定坚持使用当前的ESR版Firefox,它与Selenium开箱即用 .
我们尝试使用这个新版本的Firefox和新驱动程序,但它不够稳定,无法继续 .
我的建议是安装ESR版本的Firefox,看看你是否能以这种方式工作 . 如果是,则转到下一步(即,针对最新版本进行测试) .