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_url
、launch_url
、launchUrl
があります。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コマンドセクションを参照してください。