如果使用 Selenium Server,则连接相关设置应放置在 "selenium"" 下。如果 webdriverselenium 字典都存在,则 selenium 选项将与 webdriver 选项合并。

配置与基于云的测试提供商的连接时,也应使用 "selenium" 设置。

名称 类型 默认值 描述
start_process 布尔值 false 是否自动管理 Selenium 进程。
server_path 字符串 Selenium jar 文件的位置。如果启用了 start_process,则需要指定此项。
例如:bin/selenium-server-standalone-2.43.0.jar
log_path 字符串|布尔值 Selenium output.log 文件将放置在的位置。默认为当前目录。
要禁用 Selenium 日志记录,请将其设置为 false
version2 布尔值 false 如果您需要使用旧版 Selenium Server 2,请将其设置为 true
端口 整数 4444 Selenium 将监听的端口号,或者 Nightwatch 将尝试连接到的端口号。
cli_args 对象 要传递给 Selenium 进程的 cli 参数列表。您可以在此处为浏览器驱动程序设置各种选项,例如

  • webdriver.firefox.profile:Selenium 默认情况下会为每个会话创建一个新的 Firefox 配置文件。如果您想使用现有的 Firefox 配置文件,可以在此处指定其名称。
    Firefox 驱动程序参数的完整列表,请参阅 此处
  • webdriver.chrome.driver:Nightwatch 也可以使用 Chrome 浏览器运行测试。要启用此功能,您必须下载 ChromeDriver 二进制文件 并在此处指定其位置。另外,不要忘记在 desiredCapabilities 对象中指定 chrome 作为浏览器名称。
    有关更多信息,请访问 ChromeDriver 网站
  • webdriver.ie.driver:Nightwatch 也适用于 Internet Explorer。要启用此功能,您必须下载 IE 驱动程序二进制文件 并在此处指定其位置。

    或者,您可以从 NPM 安装包 iedriver

    您还需要在 desiredCapabilities 对象中指定“internet explorer”作为浏览器名称。

Selenium 示例配置

这是一个作为 nightwatch.conf.js 部分的示例配置,它使用本地 Selenium Server 并支持 Firefox、Chrome 和 Internet Explorer。

假设以下 NPM 包已安装在当前项目中

  • geckodriver
  • chromedriver
  • selenium-server
  • iedriver
module.exports = {
  src_folders: [],
  
test_settings: { default: { launch_url: 'https://nightwatch.node.org.cn' },
selenium: { // Selenium Server is running locally and is managed by Nightwatch selenium: { start_process: true, port: 4444, server_path: require('selenium-server').path, cli_args: { 'webdriver.gecko.driver': require('geckodriver').path, 'webdriver.chrome.driver': require('chromedriver').path, 'webdriver.ie.driver': process.platform === 'win32' ? require('iedriver').path : '' } }, webdriver: { start_process: false } },
'selenium.chrome': { extends: 'selenium', desiredCapabilities: { browserName: 'chrome', chromeOptions: { } } },
'selenium.firefox': { extends: 'selenium', desiredCapabilities: { browserName: 'firefox' } },
'selenium.ie': { extends: 'selenium', desiredCapabilities: { browserName: 'internet explorer' } } } }