Nightwatch API 編集の提案

Nightwatchは、必要なコマンド、設定、その他のプロパティをすべて単一のAPIオブジェクトにロードすることで動作します。このオブジェクトは、実行時にすべてのテストスクリプトで単一の引数として利用可能になります。これにより、実際のテストスクリプトの作成を開始する準備が整い、他のオブジェクトをインスタンス化する必要がなくなります。

"browser"オブジェクト

一貫性を保つため、またv2以降はグローバルとしても利用可能であるため、メインのAPIオブジェクトをbrowserと呼びます。

module.exports = {
  demoTest: function (browser) {
    browser.init();
  }
};

以前のバージョンのNightwatchの例では、clientを使用しているものも見られるかもしれません。もちろん問題ありませんが、JavaScript構文に慣れていないユーザーにとっては混乱を招く可能性があります。

module.exports = {
  demoTest: function (client) {
    client.init();
  }
};

グローバルとしての使用

Nightwatch 2以降、browserはグローバルとして利用可能であるため、これも有効です。

module.exports = {
  demoTest: function () {
    browser.init();
  }
};

そしてこれ

describe('Nightwatch APIs', function() {
  it('demoTest', function () {
    browser.init();
  })
};

APIの内容

以下は、browserオブジェクトで利用可能なすべての公開プロパティとメソッドのリストです。

  • WEBDRIVER_ELEMENT_ID

    型: string

    W3Cウェブ要素の識別子。文字列定数"element-6066-11e4-a52e-4f735466cecf"と等しくなります。

  • browserName

    型: string

    capabilitiesオブジェクトで指定されたbrowserName。

  • isChrome

    型: function isChrome(): boolean

    使用されているブラウザがGoogle Chromeかどうかをtrue|falseで返します。

  • isFirefox

    型: function isFirefox(): boolean

    使用されているブラウザがMozilla Firefoxかどうかをtrue|falseで返します。

  • isSafari

    型: function isSafari(): boolean

    使用されているブラウザがApple Safariかどうかをtrue|falseで返します。

  • isEdge

    型: function isEdge(): boolean

    使用されているブラウザがMicrosoft Edgeかどうかをtrue|falseで返します。

  • isInternetExplorer

    型: function isInternetExplorer(): boolean

    使用されているブラウザがMicrosoft Internet Explorerかどうかをtrue|falseで返します。

  • isOpera

    型: function isOpera(): boolean

    使用されているブラウザがOperaかどうかをtrue|falseで返します。

  • baseUrl

    型: string

    使用されているブラウザがOperaかどうかをtrue|falseで返します。

    Nightwatchの設定で定義されているbaseUrlの値。コマンド.init()のデフォルトのURLとして使用されます。他のエイリアスには、base_urllaunch_urllaunchUrlがあります。

  • actions

    型: function actions(options?: { async?: boolean; bridge?: boolean }): Actions

    SeleniumのActionsクラスの新しいインスタンスを返します。詳細はユーザーアクションAPIセクションを参照してください。

  • capabilities

    型: object

    WebDriverセッションの機能。ブラウザドライバがサポートする機能を伝えるために使用されます。

    WebDriverの機能は、セッションでサポートされている機能を伝えるために使用されます。クライアントは機能を使用して、新しいセッションを作成する際にドライバが満たす必要がある機能を定義することもできます。

    WebDriverセッションが作成されると、セッションの効果的な機能をネゴシエートした機能を記述する機能のセットを返します。このセットに含まれる機能の一部は標準であり、すべてのブラウザで共有されますが、セットにはブラウザ固有の機能が含まれる場合もあり、これらには常にプレフィックスが付けられます。WebDriver機能の詳細。


  {
    acceptInsecureCerts: false,
    browserName: 'chrome',
    browserVersion: '96.0.4664.55',
    'goog:chromeOptions': { debuggerAddress: 'localhost:50427' },
    // ... continued
  }
  • currentTest

    型: NightwatchTestSuite

    現在実行中のテストケースに関する情報を格納したオブジェクト。

    利用可能なプロパティ

  {
    // name of the current running testcase
    name: ' ... ',
    // name of the current running testsuite, i.e. the test file
    module: ' ... ',
    // name of the current running test group, if any
    group: '', 
    // the results object is shared among all testcases in the current testsuite
    results: {
      time: 0,
      assertions: [Array],
      passed: 0,
      errors: 0,
      failed: 0,
      retries: [Number],
      skipped: 0,
      tests: 0,
      steps: [],
      stackTrace: '',
      // an object accumulating the results of each testcase
      testcases: [Object]
    },
    // the current timestamp, in the format: Wed, 01 Dec 2021 08:34:00 GMT
    timestamp: ''
  }
  • desiredCapabilities

    型: NightwatchDesiredCapabilities

    NightwatchからWebDriverに送信された機能を含むオブジェクト。Nightwatchの設定ファイルで定義されています(詳細は設定セクションを参照)。


  {
    browserName: 'chrome',
    'goog:chromeOptions': {},
    name: 'Example Test'
  }
  • driver

    型: WebDriver

    Nightwatchが内部で使用しているSelenium WebDriverインスタンス。Nightwatchが提供する主要な機能を拡張する必要があるカスタムコマンドで役立ちます。通常のテストケーススクリプトで使用する場合、.perform()コマンドでラップする必要があります。

    次の例では、WebDriverセッションインスタンスを取得します。


  describe('Nightwatch APIs', function() {
    it('driver demoTest', async function () {
      const session = await browser
        .init()
        .perform(function() {
          return this.driver.getSession();
        });
    })
  };
  • sessionId

    型: string

    WebDriverセッションID。WebDriverは、各セッションに固有のセッションIDを割り当てます。このIDを使用して、あるセッションと別のセッションを区別できます。WebDriverセッションの詳細については、W3C WebDriverページSelenium WebDriverドキュメントを参照してください。


  console.log(browser.sessionId); // e0b40362dcec8ec501ac2b42b62bdce2
  • globals

    型: NightwatchGlobals

    現在使用されているグローバルプロパティとメソッドを含む、処理済みのNightwatchグローバルオブジェクト。詳細はテストグローバルセクションを参照してください。

  • options

    型: NightwatchOptions

    現在使用されているプロパティと設定を含む、処理済みのNightwatch設定オブジェクト。詳細は設定セクションを参照してください。

  • Keys

    型: NightwatchKeys

    SeleniumのKey列挙へのリンク。テキスト以外のすべての押下可能なキーが含まれています。これは通常、.sendKeys()など、ページにテキストを送信するコマンドを使用する場合に必要です。

  • page

    型: NightwatchPage & NightwatchCustomPageObjects

    現在実行中のテストケースに対して作成された、現在のページオブジェクトの辞書が含まれています。ページオブジェクトの使用セクションを参照してください。

  • assert

    型: Assert

    詳細はAssert APIセクションを参照してください。

  • verify

    型: Assert

    詳細はAssert APIセクションを参照してください。

  • ensure

    型: Ensure

    詳細はEnsure APIセクションを参照してください。

  • expect

    型: Expect

    詳細はExpect APIセクションを参照してください。

  • chrome

    型: object

    Chromium固有のコマンド。詳細はAPIコマンドセクションを参照してください。

  • firefox

    型: object

    Firefox固有のコマンド。詳細はAPIコマンドセクションを参照してください。