API リファレンス
ブラウザー・テスト API の参照情報を表示できます。
アクション
このブラウザテストの API 関数は、 WebDriver を使用して新しいアクションシーケンスを作成します。 コード内で Actions.perform () 関数を呼び出すまで、シーケンスは実行されません。
使用法
$browser.actions().sendKeys("synthetic").perform();
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Actions |
このインスタンスの新規アクション・シーケンス。 |
options |
Object |
「アクション」 シーケンスの構成オプション。 |
例
例 1: クリックするには、以下のコードを使用します。
const element = await $browser.waitForAndFindElement(by, timeout);
$browser.actions().move({origin: element}).press().release().perform();
例 2: ブラウザー・エレメントの上にマウスを移動するには、以下のコードを使用します。
const element = await $browser.waitForAndFindElement(by, timeout);
$browser.actions().move({origin: element, duration: 2000}).perform();
旧 mouseMove 機能と互換性を持たせるには、以下のコマンドを使用します。
$browser.actions().mouseMove(element).perform();
$browser.actions().mouseMove() `メソッドをサポートしており、2021年に Selenium によってこのPRで``メソッドが削除されたため $browser.actions().move() 、代わりに``メソッドを実装しています。例 3: 鍵を送信するには、以下のコードを実行します。
await $browser.get("http://www.bing.com");
await $browser.actions().sendKeys("synthetic").perform();
addHeader
このブラウザテスト用 API は、 HTTP へのリクエストのヘッダーを変更します。
使用法
$browser.addHeader(key: string, val: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
key |
string |
HTTP ヘッダー名。 |
val |
string |
HTTP ヘッダーの値。 |
例
await $browser.addHeader(
"User-Agent",
"Mozilla/5.0 (iPhone; CPU OS 10_15_5 (Ergänzendes Update) like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15"
);
await $browser.get("https://www.yahoo.com/");
await $browser.takeScreenshot();
await $browser.addHeader(
"User-Agent",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:86.0) Gecko/20100101 Firefox/86.0"
);
await $browser.get("https://www.yahoo.com/");
await $browser.takeScreenshot();
addHeaders
このブラウザテスト用 API は、 HTTP へのリクエストのヘッダーを変更します。
使用法
$browser.addHeaders(headers: { [key: string]: string }): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
headers |
{ [key: string]: string } |
HTTPヘッダー |
例
await $browser.addHeaders({
key1: "val1",
key2: "val2",
});
addHostnamesToDenylist
このブラウザテストツール API は、ホスト名をブロックリストに追加します。
使用法
$browser.addHostnamesToDenylist(hostnameArr: string[]): Promise<void>
addHostnamesToDenylist のバージョンとの互換性を確保するため、この addHostnamesToBlacklist 機能は削除されていません。$browser.addHostnamesToBlacklist(hostnameArr: string[]): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostnameArr |
string[] |
突き合わせるホスト名、およびワイルドカードをサポートするホスト名 |
例
await $browser.addHostnamesToDenylist(["*.css", "*.png"]);
await $browser.addHostnamesToAllowlist(["*"]);
addHostnamesToAllowlist
このブラウザテストツール API は、ホスト名を許可リストに追加します。
使用法
$browser.addHostnamesToAllowlist(hostnameArr: string[]): Promise<void>
addHostnamesToAllowlist のフィルタリングを行う関数が提供されていますが、以前のバージョンとの互換性を確保するため、この addHostnamesToWhitelist 関数は削除されていません。$browser.addHostnamesToWhitelist(hostnameArr: string[]): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostnameArr |
string[] |
突き合わせるホスト名。ワイルドカードをサポートします。 |
例
await $browser.addHostnamesToDenylist(["*.css", "*.png"]);
await $browser.addHostnamesToAllowlist(["*"]);
addHostnameToDenylist
このブラウザのテスト API は、ホスト名をブロックリストに追加します。
使用法
$browser.addHostnameToDenylist(hostname: string): Promise<void>
addHostnameToDenylist のフィルタリングを行う関数が提供されていますが、以前のバージョンとの互換性を確保するため、この addHostnameToBlacklist 関数は削除されていません。$browser.addHostnameToBlacklist(hostname: string): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostname |
string |
突き合わせるホスト名、およびワイルドカードをサポートするホスト名 |
例
await $browser.addHostnameToDenylist(`*.css`);
await $browser.addHostnameToAllowlist(`*`);
addHostnameToAllowlist
このブラウザテスト( API )は、ホスト名を許可リストに追加します。
使用法
$browser.addHostnameToAllowlist(hostname: string): Promise<void>
addHostnameToAllowlist のバージョンとの互換性を確保するため、この addHostnameToWhitelist 機能は削除されていません。$browser.addHostnameToWhitelist(hostname: string): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostname |
string |
突き合わせるホスト名。ワイルドカードをサポートします。 |
例
await $browser.addHostnameToDenylist(`*.css`);
await $browser.addHostnameToAllowlist(`*`);
clearProxy
このブラウザのテスト API は、現在のプロキシ設定をクリアまたは削除します。
使用法
$browser.clearProxy(): Promise<void>;
deleteHeader
このブラウザのテスト API は、ユーザー定義のヘッダーを削除します。
使用法
$browser.deleteHeader(key: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
このコマンドの完了時に解決される promise。 |
key |
string |
HTTP ヘッダー名。 |
例
await $browser.addHeader('header1-xxx', 'abcd');
await $browser.addHeaders({
key1: 'val1',
key2: 'val2',
});
await $browser.deleteHeaders(['key1']);
await $browser.get(`http://localhost:${devport}/header-test`);
let userHeaders: Map<string, any> = $browser.getHeaders();
console.log("User customized headers: ", [...userHeaders]);
expect(userHeaders.size).toEqual(2);
deleteHeaders
このブラウザテストツール( API )は、ユーザー定義のヘッダーを削除します。
使用法
$browser.deleteHeaders: (header: string[]) => Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
このコマンドの完了時に解決される promise。 |
header |
string[] |
HTTP ヘッダー名。 |
例
await $browser.addHeader('header1-xxx', 'abcd');
await $browser.addHeaders({
key1: 'val1',
key2: 'val2',
});
await $browser.deleteHeaders(['key1']);
await $browser.get(`http://localhost:${devport}/header-test`);
let userHeaders: Map<string, any> = $browser.getHeaders();
console.log("User customized headers: ", [...userHeaders]);
expect(userHeaders.size).toEqual(2);
deleteHostnameFromDenylist
このブラウザテスト( API )は、拒否リストからホスト名を削除します。
使用法
$browser.deleteHostnameFromDenylist(hostname: string): Promise<void>;
deleteHostnameFromDenylist のフィルタリングを行う関数が提供されていますが、以前のバージョンとの互換性を確保するため、この deleteHostnameFromBlacklist 関数は削除されていません。$browser.deleteHostnameFromBlacklist(hostname: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostname |
string |
突き合わせるホスト名。ワイルドカードをサポートします。 |
deleteHostnameFromAllowlist
このブラウザー・テスト API は、許可リストからホスト名を削除します。
使用法
$browser.deleteHostnameFromAllowlist(hostname: string): Promise<void>;
deleteHostnameFromAllowlist function`を追加しますが、以前のバージョンとの互換性を確保するため、` deleteHostnameFromWhitelist function`を削除することはありません。$browser.deleteHostnameFromWhitelist(hostname: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostname |
string |
突き合わせるホスト名。ワイルドカードをサポートします。 |
deleteHostnamesFromDenylist
このブラウザテスト API は、拒否リストからホスト名を削除します。
使用法
$browser.deleteHostnamesFromDenylist(hostnameArr: string[]): Promise<void>
deleteHostnamesFromDenylist のフィルタリングを行う関数が提供されていますが、以前のバージョンとの互換性を確保するため、この deleteHostnamesFromBlacklist 関数は削除されていません。$browser.deleteHostnamesFromBlacklist(hostnameArr: string[]): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostnameArr |
string[] |
突き合わせるホスト名。ワイルドカードをサポートします。 |
deleteHostnamesFromAllowlist
このブラウザテスト( API )は、許可リストからホスト名を削除します。
使用法
$browser.deleteHostnamesFromAllowlist(hostnameArr: string[]): Promise<void>
deleteHostnamesFromAllowlist のフィルタリングを行う関数が提供されていますが、以前のバージョンとの互換性を確保するため、この deleteHostnamesFromWhitelist 関数は削除されていません。$browser.deleteHostnamesFromWhitelist(hostnameArr: string[]): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
戻り値は promise です。 |
hostnameArr |
string[] |
突き合わせるホスト名。ワイルドカードをサポートします。 |
ドル・ドル
$$ コマンドは、ページ上の複数のエレメントをフェッチするために findElements コマンドを呼び出すショートカットです。 このコマンドは、エレメント結果を含む配列を返します。 これらの結果には、アクション・コマンドを呼び出すための拡張プロトタイプがあります。
$ または $$ を一緒にチェーニングして、DOM ツリーをナビゲートできます。
特定のエレメントを選択する方法について詳しくは、 CSS セレクターを参照してください。
使用法
$browser.$$(selector);
パラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<WebElement[]> |
戻り値は、 WebElementsの配列を使用して解決される promise です。 |
selector |
String, Function |
特定のエレメントをフェッチするための Selector 関数または JavaScript 関数。 |
例
index.html ファイルは以下のとおりです。
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/">Developer Guide</a></li>
<li><a href="/">API</a></li>
<li><a href="/">Contribute</a></li>
</ul>
$$ を使用して、以下のようにエレメントを検索します。
test("should get text a menu link", async () => {
const menu = (await $browser.$$("#menu"))[0];
const li = await menu.$$("li");
console.log(await li[2].$("a").getText()); // outputs: "API"
});
test("should get text a menu link - JS Function", async () => {
const text = (
await $browser.$$(function () {
// Arrow function is not allowed here.
return document.querySelectorAll("#menu"); // Element[]
})
)[0];
const li3Text = await (await text.$$("li"))[2].$("a").getText();
console.log(li3Text); // outputs: "API"
});
$
$ コマンドは、ページ上の単一エレメントをフェッチするために findElement コマンドを呼び出すショートカットです。 このコマンドはオブジェクトを戻します。 オブジェクトには、アクション・コマンドを呼び出すための拡張プロトタイプがあります。
$ または $$ を一緒にチェーニングして、DOM ツリーをナビゲートできます。
特定のエレメントを選択する方法について詳しくは、 CSS セレクターを参照してください。
使用法
$browser.$(selector): WebElementPromise;
パラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
RETURN |
WebElementPromise |
戻り値は WebElementPromise です。 |
selector |
String, Function |
複数のエレメントをフェッチするためのセレクターまたは JavaScript 関数。 |
例
index.html ファイルは以下のとおりです。
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/">Developer Guide</a></li>
<li><a href="/">API</a></li>
<li><a href="/">Contribute</a></li>
</ul>
次のように $を使用してエレメントを検索します。
test("should get text a menu link", async () => {
const text = await $browser.$("#menu").$$("li");
console.log(await text[2].$("a").getText()); // outputs: "API"
});
test("should get text a menu link - JS Function", async () => {
const text = await $browser.$(function () {
// Arrow function is not allowed here.
return document.querySelector("#menu"); // Element
}).$$("li");
console.log(text.$$("li")[2].$("a").getText()); // outputs: "API"
});
実行
このブラウザテスト API は、 WebDriver の command.Executor 機能を使用して、指定された [Command] を実行します。
使用法
$browser.execute(command) => Promise<T>
Promise<T> は、コマンド結果で解決される promise です。
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
command |
Command |
スケジュールするコマンド |
executeAsyncScript
このブラウザテスト API は、現在選択されているフレームまたはウィンドウのコンテキスト内で、非同期の JavaScript のスニペットを実行します。 スクリプト・フラグメントは、匿名関数の本体として実行されます。 スクリプトが関数オブジェクトとして提供されている場合、その関数は、ターゲット・ウィンドウに注入するためにストリングに変換されます。
スクリプトに加えて引数を指定すると、その引数はスクリプト引数として組み込まれ、 arguments オブジェクトを使用して参照できます。 引数には、ブール値、数値、ストリング、または WebElementを指定できます。 配列およびオブジェクトは、各項目が記述されたタイプに従っている場合は、スクリプト引数として使用することもできます。
`executeScript ` を使用して同期的な ` JavaScript ` を実行する場合とは異なり、この関数で実行されるスクリプトは、指定されたコールバックを開始することで、明示的に処理が完了したことを通知する必要があります。 このコールバックは、常に最後の引数として実行される関数に注入されるため、 arguments[arguments.length - 1]で参照される可能性があります。 スクリプトのコールバック関数の最初の引数に対してこの関数の戻り値を解決するには、以下のステップを実行します。
- HTML 要素の場合、値は WebElementに解決されます。
- NULL および未定義の戻り値は NULL に解決されます。
- ブール値、数値、およびストリングはそのまま解決されます。
- 関数は、ストリング表現に解決されます。
- 配列およびオブジェクトの場合、各メンバー項目は、記述された規則に従って変換されます。
使用法
$browser.executeAsyncScript<T>(script: string|Function, ...var_args: any[]): Promise<T>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise.<T> |
スクリプトの戻り値を使用して解決される promise。 |
script |
string, Function |
実行するスクリプト。 |
...args |
* |
スクリプトに渡される引数です。 |
例
例 1: 現在選択されているウィンドウと同期化されたスリープを実行するには、以下の例に示すようにコマンドを使用します。
const start = new Date().getTime();
$browser.executeAsyncScript(
"window.setTimeout(arguments[arguments.length - 1], 500);"
).then(function () {
console.log("Elapsed time: " + (new Date().getTime() - start) + " ms");
});
例 2: テストを Ajax アプリケーションと同期するには、以下の例に示すようにコマンドを使用します。
const button = $browser.$("#compose-button");
button.click();
$browser.executeAsyncScript(
"var callback = arguments[arguments.length - 1];" +
"mailClient.getComposeWindowWidget().onload(callback);"
);
$browser.switchTo().frame("composeWidget");
$browser.$("#to").sendKeys("dog@example.com");
例 3: XMLHttpRequest を注入して結果を待機するには、以下のコマンドを使用します。 この例では、注入スクリプトは関数リテラルで指定されています。 このフォーマットを使用すると、関数は注入のためにストリングに変換されます。 そのため、この関数は、テスト対象ページのスコープで定義されていないシンボルを参照してはなりません。
$browser.executeAsyncScript(function () {
var callback = arguments[arguments.length - 1];
var xhr = new XMLHttpRequest();
xhr.open("GET", "/resource/data.json", true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
callback(xhr.responseText);
}
};
xhr.send("");
}).then(function (str) {
console.log(JSON.parse(str)["food"]);
});
executeScript
このブラウザテスト API は、現在選択されているフレームまたはウィンドウのコンテキスト内で、 JavaScript のスニペットを実行します。 スクリプト・フラグメントは、匿名関数の本体として実行されます。 スクリプトを関数オブジェクトとして指定すると、その関数はターゲット・ウィンドウへの注入のためにストリングに変換されます。
スクリプトに加えて引数を指定すると、その引数はスクリプト引数として組み込まれ、 arguments オブジェクトを使用して参照される可能性があります。 引数には、ブール値、数値、ストリング、または WebElementを指定できます。 配列およびオブジェクトは、各項目が記述されたタイプに従っている場合は、スクリプト引数として使用することもできます。
スクリプトは、現行ウィンドウからアクセス可能な変数を参照する場合があります。 さらに、スクリプトはウィンドウのコンテキストで実行されるため、現在の文書を参照するために document が使用される場合があります。 グローバル変数は保持されますが、スクリプトの実行終了後に使用可能なローカル変数はありません。
スクリプトに戻り値がある場合、つまり、スクリプトに return ステートメントが含まれている場合は、この関数の戻り値を解決するために以下のステップが実行されます。
- HTML 要素の場合、値は WebElementに解決されます。
- NULL および未定義の戻り値は NULL に解決されます。
- ブール値、数値、およびストリングはそのまま解決されます。
- 関数は、ストリング表現に解決されます。
- 配列およびオブジェクトの場合、各メンバー項目は、記述された規則に従って変換されます。
使用法
$browser.executeScript<T>(script: string|Function, ...var_args: any[]): Promise<T>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise.<T> |
スクリプトの戻り値を使用して解決される promise。 |
script |
string, Function |
実行するスクリプト。 |
...args |
* |
スクリプトに渡される引数です。 |
findElement
このブラウザテストツール( API )は、ページ上の要素を特定します。 エレメントが見つからない場合、ドライバーは error.NoSuchElementErrorを返します。
使用法
$browser.findElement(locator: Locator): WebElementPromise;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
WebElementPromise | 見つかったエレメントに対してコマンドを発行するために使用できる WebElement 。 エレメントが見つからない場合、エレメントは無効になり、スケジュールされているすべてのコマンドが停止します。 |
locator |
By , function |
使用するロケーター。 |
例
この機能を使用して、ページ上にエレメントが存在するかどうかをテストしてはなりません。 その代わりに、 findElements を使用する必要があります:
$browser.findElements($driver.By.id("foo"))
.then((found) => console.log("Element found? %s", !!found.length));
エレメントの検索基準を定義するには、 webdriver.By 名前空間内のいずれかのファクトリーを使用するか、短時間の webdriver.By.Hash オブジェクトとして使用します。 例えば、以下の 2 つのステートメントは同等です。
var e1 = $browser.findElement($driver.By.id("foo"));
var e2 = $browser.findElement({ id: "foo" });
また、このインスタンスを引数として受け取り、 WebElement、または WebElement で解決されるPromiseを返すカスタムロケーター関数を指定することもできます。 返されたPromiseが WebElements, の配列で解決された場合、 WebDriver は最初の要素を使用します。 例えば、ページ上の最初の可視リンクを検索するには、以下のコマンドを使用できます。
var link = $browser.findElement(firstVisibleLink);
function firstVisibleLink(driver) {
var links = driver.findElements(By.tagName("a"));
return promise.filter(links, function (link) {
return link.isDisplayed();
});
}
findElements
このブラウザテスト( API )は、ページ上の複数の要素を検索します。 要素の特定方法については、 を参照してください findElement 。
使用法
$browser.findElements(locator: Locator): Promise<WebElement[]>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise <WebElement[ ]> | WebElementsの配列を使用して解決される promise。 |
locator |
By, function |
使用するロケーター。 |
generateTOTPToken
このブラウザ用テストツール API は、TOTPキーから時間ベースのワンタイムパスワード(TOTP)トークンを生成します。 この API を使用して、二要素認証でログインできます。
使用法
$browser.generateTOTPToken(key: string, options?: TOTPOptions): string;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
string |
時刻ベースのワンタイム・パスワード (TOTP) トークン |
key |
string |
TOTP キー、 base32 ストリング |
options |
Object,undefined |
オプション: オプション設定 (例: {digits: 8, algorithm:
"SHA-512", period: 60})。 デフォルト設定は {digits: 6, algorithm: "SHA-1", period: 30} です。 |
例
例 1: TOTP トークンを生成し、ブラウザー・スクリプト・テストで 2 要素認証を使用してログインするには、以下のようにします。
await $browser.waitForAndFindElement($driver.By.id("password"), 15000);
let totp_token = $browser.generateTOTPToken($secure.totpKey);
await $browser.findElement($driver.By.id("password")).then((element) => {
return element.clear().then(() => {
return element.sendKeys(totp_token);
});
});
例 2: Selenium SIDE スクリプト・テストで TOTP トークンを生成するには、以下のようにします。
{
"id": "ec51296b-4d16-4167-ac83-ba87f89cc0c7",
"comment": "Generate a TOTP token from a TOTP key",
"command": "executeScript",
"target": "return $browser.generateTOTPToken($secure.totpKey);",
"targets": [],
"value": "totpToken"
}
取得
このブラウザテストのURL API は、 URL にリダイレクトされます。
使用法
$browser.get(url: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
文書のロードが終了したときに解決される promise。 |
url |
string |
「 URL 」という完全修飾名で開きます。 |
getAllWindowHandles
このブラウザテスト API は、現在利用可能なウィンドウハンドルのリストを取得するコマンドを実行するようにスケジュールされています。
使用法
$browser.getAllWindowHandles(): Promise<string[]>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<string[]> |
ウィンドウ・ハンドルの配列を使用して解決される promise。 |
getCapabilities
このブラウザテスト API は、このインスタンスの機能情報を取得します。
使用法
$browser.getCapabilities(): Promise<Capabilities>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<Capabilities> |
このインスタンスの機能によって解決される promise。 |
getCurrentUrl
このブラウザテスト API は、現在のページの URL を取得するコマンドをスケジュールします。
使用法
$browser.getCurrentUrl(): Promise<string>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<string> |
この問題は、現在の URL で解決される予定です。 |
getHeaders
このブラウザテストツール API は、ユーザーがカスタマイズしたヘッダーを受け付けます。
使用法
$browser.getHeaders(): Map<string, any>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Map<string, any> |
ユーザー定義ヘッダー |
例
await $browser.addHeader('header1-xxx', 'abcd');
await $browser.addHeaders({
key1: 'val1',
key2: 'val2',
});
await $browser.deleteHeaders(['key1']);
await $browser.get(`http://localhost:${devport}/header-test`);
let userHeaders: Map<string, any> = $browser.getHeaders();
console.log("User customized headers: ", [...userHeaders]);
expect(userHeaders.size).toEqual(2);
getPageSource
このブラウザテストツール API は、現在のページのソースを取得します。 返されるソースは、基礎となる DOM の表現です。 Web サーバーから送信される未加工の応答と同じ方法でソースがフォーマットまたはエスケープされることを想定しないでください。
使用法
$browser.getPageSource(): Promise<string>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<string> |
現在のページ・ソースで解決される promise。 |
getProxy
このブラウザのテストページ API は、現在のプロキシ設定を取得します。
使用法
$browser.getProxy(): FFProxyConfig | CProxyConfig;
この API は、オブジェクト $network を介して呼び出すこともできます:
$network.getProxy(): FFProxyConfig | CProxyConfig;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
CProxyConfig または FFProxyConfig | プロキシー構成オブジェクト (Chrome または Firefox 固有のカプセル化)。 |
プロキシー構成
/**
* Firefox extension - An object encapsulating a complete proxy configuration
* https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/settings
*/
export interface FFProxyConfig {
proxyType?: FFProxyType,
http?: string;
ssl?: string,
ftp?: string;
autoConfigUrl?: string,
autoLogin?: boolean,
httpProxyAll?: boolean,
passthrough?: string,
proxyDNS?: boolean,
socks?: string,
socksVersion?: number,
}
/**
* Chrome extension - An object encapsulating a complete proxy configuration
* https://developer.chrome.com/docs/extensions/reference/proxy/#type-ProxyConfig
*/
export interface CProxyConfig {
mode: CProxyType,
rules?: {
bypassList?: string[],
fallbackProxy?: ProxyServer,
proxyForFtp?: ProxyServer,
proxyForHttp?: ProxyServer,
proxyForHttps?: ProxyServer,
singleProxy?: ProxyServer,
},
pacScript?: {
data?: string,
mandatory?: boolean,
url?: string,
},
};
getSession
このブラウザのテスト API は、このクライアントのセッションを取得します。
使用法
$browser.getSession(): Promise<Session>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<Session> |
このクライアントのセッションの約束。 |
getTitle
このブラウザテスト API では、現在のページのタイトルを取得するコマンドが実行されます。
使用法
$browser.getTitle(): Promise<string>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<string> |
現在のページのタイトルを使用して解決される promise。 |
getWindowHandle
このブラウザテスト API は、現在のウィンドウハンドルを取得するコマンドをスケジュールします。
使用法
$browser.getWindowHandle(): Promise<string>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<string> |
現行ウィンドウ・ハンドルを使用して解決される promise。 |
管理
このブラウザテスト API は、このインスタンスのオプションインターフェースを取得します。
使用法
$browser.manage(): Options;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Options |
このインスタンスのオプション・インターフェース。 |
オプション
これらのオプションは、ブラウザーおよびドライバーの状態を管理するためのメソッドを提供します。
| タイプ | 説明 |
|---|---|
addCookie(spec: IWebDriverOptionsCookie):
Promise<void> |
cookieを追加するコマンドをスケジュールします。 |
deleteAllCookies(): Promise<void>; |
現在のページに表示されているすべての Cookie を削除するコマンドをスケジュールします。 |
deleteCookie(name: string):
Promise<void>; |
指定された名前の Cookie を削除するコマンドをスケジュールします。 指定された名前の Cookie が現行ページに表示されない場合、このコマンドはノーオペレーションです。 |
getCookies():
Promise<IWebDriverCookie[]>; |
現行ページに表示されるすべての Cookie を取得するコマンドをスケジュールします。 各Cookieは、 WebDriver ワイヤプロトコルで規定されているとおり、 JSON オブジェクトとして返されます。 |
getCookie(name: string):
Promise<IWebDriverCookie>; |
指定された名前の cookie を取得するコマンドをスケジュールします。 そのような Cookie が使用できない場合は、NULL を返します。 このクッキーは、 WebDriver ワイヤプロトコルで規定されているとおり、 JSON オブジェクトとして返されます。 |
logs(): Logs; |
ドライバー・ログを管理するためのインターフェースを提供します。 |
getTimeouts(): Promise<ITimeouts>; |
現在の timeoutsを取得します。 |
setTimeouts(timeouts: ITimeouts):
Promise<void>; |
現在の timeoutsを設定します。 |
window(): Window; |
現在の ウィンドウを管理するためのインターフェースを提供します。 |
IWebDriverCookie
| パラメーター | タイプ | 説明 |
|---|---|---|
name |
string |
Cookie の名前です。 |
value |
string |
Cookie の値。 |
path |
string |
Cookie パス。 Cookie が追加されると、デフォルトで「/」に設定されます。 |
domain |
string |
Cookie が表示されるドメイン。 クッキーが追加されると、デフォルトでは現在のブラウジングコンテキストのドキュメントの URL が設定されます。 |
secure |
boolean |
このパラメーターは、Cookie がセキュア Cookie であるかどうかを示します。 デフォルト値は falseです。これは、Cookie がセキュア Cookie ではないことを意味します。 |
httpOnly |
boolean |
このパラメータは、そのクッキーが HTTP 専用のクッキーであるかどうかを示します。 デフォルト値は です false。これは、このクッキーが HTTP 専用ではないことを意味します。 |
expiry |
number |
ブラウザーから Cookie を取得する場合、有効期限は常にエポック以降の秒数で返されます。 |
タイムアウト
| パラメーター | タイプ | 説明 |
|---|---|---|
script |
number |
評価済みスクリプトの実行を待機する最大時間を指定します。 |
pageLoad |
number |
ページのロードが終了するまで待機する最大時間を指定します。 デフォルトは 300000 ミリ秒です。 |
implicit |
number |
ページ上のエレメントを見つけるときに、エレメント・ロケーターが成功するのを待機する最大時間を指定します。 デフォルトは 0 ミリ秒です。 |
ウィンドウ
export interface ILocation {
x: number;
y: number;
}
export interface ISize {
width: number;
height: number;
}
export interface IRectangle {
x: number;
y: number;
width: number;
height: number;
}
現行ウィンドウを管理するためのインターフェース。
| タイプ | 説明 |
|---|---|
getPosition(): Promise<ILocation>; |
画面の左上を基準にして、ウィンドウの現在位置を検索します。 |
setPosition(x: number, y: number):
Promise<void>; |
現行ウィンドウを位置変更します。 |
getSize(): Promise<ISize>; |
ウィンドウの現行サイズを検索します。 |
setSize(width: number, height: number):
Promise<void>; |
現行ウィンドウのサイズを変更します。 |
getRect(): Promise<IRectangle>; |
現在の最上位ウィンドウのサイズと位置を戻します。 |
setRect({x, y, width, height}:
Partial<IRectangle>): Promise<IRectangle>; |
現在の最上位ウィンドウのサイズと位置を設定します。 x と y を省略してサイズのみを更新することも、 width と height のオプションを省略して位置のみを更新することもできます。 |
maximize(): Promise<void>; |
現行ウィンドウを最大化します。 |
例
let tm = await $browser.manage().getTimeouts();
console.log('current timeout', tm.implicit, tm.pageLoad, tm.script);
await $browser.manage().timeouts().pageLoadTimeout(119);
tm = await $browser.manage().getTimeouts();
expect(tm.pageLoad).toBe(119);
console.log('current timeout', tm.implicit, tm.pageLoad, tm.script);
await $browser.manage().timeouts().pageLoadTimeout(89);
tm = await $browser.manage().getTimeouts();
expect(tm.pageLoad).toBe(89);
console.log('current timeout', tm.implicit, tm.pageLoad, tm.script);
ナビゲート
このブラウザテスト API は、このインスタンスのナビゲーションインターフェースを取得します。
使用法
$browser.navigate(): Navigation;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Navigation |
このインスタンスのナビゲーション・インターフェース。 |
ナビゲーション
ブラウザー履歴で前後に移動するためのナビゲーション・インターフェース。
| タイプ | 説明 |
|---|---|
to(url: string): Promise<void>; |
新しい URL に移動するコマンドをスケジュールします。 |
back(): Promise<void>; |
ブラウザー履歴で後方に移動するコマンドをスケジュールします。 |
forward(): Promise<void>; |
ブラウザー履歴で前方に移動するコマンドをスケジュールします。 |
refresh(): Promise<void>; |
現行ページを最新表示するコマンドをスケジュールします。 |
setAuthentication
このブラウザのテスト API は、今後の HTTP へのリクエストに対する認証設定を変更します。
使用法
$browser.setAuthentication(authName: string, authPass: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
設定が適用されると、promise が解決されます。 |
authName |
string |
認証用のユーザー名。 |
authPass |
string |
認証用のユーザー・パスワード。 |
例
await $browser.setAuthentication(basicauthuser, password);
await $browser.get(`http://${httpserver}/basic/page1.html`)
.then(() => $browser.takeScreenshot());
setProxy
このブラウザテスト API では、すべての HTTP、 HTTPS、および FTP リクエストに対して使用するプロキシサーバーが設定されます。
使用法
$browser.setProxy(proxyURL: string | URL, noProxy?: string): Promise<void>;
この API は、オブジェクト $network を介して呼び出すこともできます。
$network.setProxy(proxyURL: string | URL, noProxy?: string): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
設定が適用されると、promise が解決されます。 |
proxyURL |
string, URL |
プロキシサーバーに接続するための URL 文字列。 URL 文字列は、ノードの url.parse ( urlString ) メソッドで定義されている形式でなければなりません。 例えば、 http://proxy_host:8888 または https://user:pass@proxy_host:8888 です。 |
noProxy |
string |
オプション: すべてのプロキシーをバイパスするホストの、コンマ区切りのリスト。 |
setProxyAdvanced
このブラウザテストツール API は、Chrome または Firefox 拡張機能 API でサポートされている形式を使用して、プロキシ設定を行います。
使用法
$browser.setProxyAdvanced(proxyConfig: CProxyConfig | FFProxyConfig, authName?: string, authPass?: string): Promise<void>;
この API は、オブジェクト $network を介して呼び出すこともできます。
$network.setProxyAdvanced(proxyConfig: CProxyConfig | FFProxyConfig, authName?: string, authPass?: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
設定が適用されると、promise が解決されます。 |
proxyConfig |
CProxyConfig または FFProxyConfig | Chrome または Firefox に固有のカプセル化でのプロキシー構成オブジェクト。 |
authName |
string |
オプション: 認証用のプロキシー・サーバーのユーザー名。 |
authPass |
string |
オプション: 認証用のプロキシー・サーバーのユーザー・パスワード。 |
例
async function testProxyAdvanced() {
await $browser.clearProxy();
var ffconfig = {
proxyType: "manual",
//proxyType: "autoConfig",
http: proxy_4,
ssl: proxy_4,
ftp: proxy_4,
autoConfigUrl: pacfile,
passthrough: noproxy,
autoLogin: true,
}
var pxyserver = {
host: httpserver,
port: 8088,
scheme: "http",
}
var cconfig = {
mode: "fixed_servers",
rules: {
bypassList: noproxy.split(','),
fallbackProxy: {
host: "my-proxy-server.us.ibm.com",
port: 8080,
},
proxyForFtp: pxyserver,
proxyForHttp: pxyserver,
proxyForHttps: pxyserver,
},
pacScript: {
url: pacfile,
},
}
var bname = null;
await $browser.getCapabilities().then(cap=> {
bname = cap.getBrowserName();
});
var config = (bname == 'chrome') ? cconfig : ffconfig;
await $browser.setProxyAdvanced(config, proxyuser, password);
await $browser.get(`http://${httpserver}/demo/page2.html`)
.then(() => $browser.takeScreenshot());
}
setProxyAuthentication
このブラウザのテスト機能( API )は、今後送信される HTTP、 HTTPS、および FTP リクエストのプロキシ認証設定を変更します。
使用法
$browser.setProxyAuthentication(authName: string, authPass: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
設定が適用されると、promise が解決されます。 |
authName |
string |
認証用のプロキシー・サーバーのユーザー名。 |
authPass |
string |
認証用のプロキシー・サーバーのユーザー・パスワード。 |
例
async function testProxyAuthentication() {
await $browser.clearProxy();
await $browser.setProxy(proxy_3, noproxy);
await $browser.setProxyAuthentication(proxyuser, password);
await $browser.get(`http://${httpserver}/demo/page2.html`)
.then(() => $browser.takeScreenshot());
}
setProxyForHttp
このブラウザのテスト API では、すべての HTTP へのリクエストに使用するプロキシサーバーが設定されます。
使用法
$browser.setProxyForHttp(proxyURL: string | URL, noProxy?: string): Promise<void>
この API は、オブジェクト $network を介して呼び出すこともできます。
$network.setProxyForHttp(proxyURL: string | URL, noProxy?: string): Promise<void>
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
設定が適用されると、promise が解決されます。 |
proxyURL |
string, URL |
プロキシサーバーに接続するための URL 文字列。 URL 文字列は、Node.js の url.parse メソッド( urlString ) で定義されている形式でなければなりません。 例えば、 http://proxy_host:8888 または https://user:pass@proxy_host:8888 です。 |
noProxy |
string |
オプション: すべてのプロキシーをバイパスする必要があるホストのコンマ区切りリスト。 |
例
let website;
let proxyServer = "proxyHost:proxyPort";
console.log(">>>>>>>>>>>>>>>>>>>", "Clear proxy configuration");
await $network.clearProxy();
console.log(">>>>>>>>>>>>>>>>>>>", "Set proxy configuration for HTTP request");
await $network.setProxyForHttp(proxyServer);
website = await accessWebSite();
checkHostname("www.google.com.hk", website)
setProxyForHttps
このブラウザのテスト API では、すべての HTTPS へのリクエストに使用するプロキシサーバーが設定されます。
使用法
$browser.setProxyForHttps(proxyURL: string | URL, noProxy?: string): Promise<void>;
この API は、オブジェクト $network を介して呼び出すこともできます。
$network.setProxyForHttps(proxyURL: string | URL, noProxy?: string): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
設定が適用されると promise が解決されます |
proxyURL |
string, URL |
プロキシサーバーに接続するための URL 文字列。 URL 文字列は、ノードの url.parse ( urlString ) メソッドで定義されている形式でなければなりません。 例えば、 http://proxy_host:8888 または https://user:pass@proxy_host:8888 です。 |
noProxy |
string |
オプション: すべてのプロキシーをバイパスする必要があるホストのコンマ区切りリスト。 |
例
let website;
let sslProxyServer = "username:password@proxyHost:proxyPort";
console.log(">>>>>>>>>>>>>>>>>>>", "Clear proxy configuration");
await $network.clearProxy();
console.log(">>>>>>>>>>>>>>>>>>>", "Set proxy configuration for HTTPS request");
let testURL = new URL("http://" + sslProxyServer);
await $network.setProxyForHttps(testURL);
website = await accessWebSite();
checkHostname("www.google.com", website);
setProxyPAC
このブラウザテスト API は、プロキシ自動設定(PAC)スクリプトを使用してプロキシサーバーを設定します。
使用法
$browser.setProxyPAC(pacScriptURL: string, noProxy?: string, authMap?: Map<string, any>): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
設定が適用されると、promise が解決されます。 |
pacScriptURL |
string |
PACスクリプトの URL。 |
noProxy |
string |
オプション: すべてのプロキシーをバイパスする必要があるホストのコンマ区切りリスト。 |
authMap |
Map |
オプション: プロキシー・サーバーに提供される認証資格情報のマップ。プロキシー・サーバーの Hostname によって鍵が設定されます。 このマップの値は、 {username: "authUsername", password:
"authPassword"}の形式で定義する必要があります。 |
例
const httpserver = '<DemoServerIP>';
const noproxy = "localhost,google.com,192.168.1.0/24";
const pacfile = `http://${httpserver}/pacfile`;
const authmap = new Map([
[ httpserver, {username: "proxyuser", password: "passw0rd"} ],
[ "httpserver2", {username: "user1", password: "passw0rd"} ],
])
async function testProxyPAC() {
await $browser.clearProxy();
await $browser.setProxyPAC(pacfile, noproxy, authmap);
await $browser
.get(`http://${httpserver}/demo/page2.html`)
.then(() => $browser.takeScreenshot());
}
スリープ
このブラウザテスト API では、ドライバを特定の時間だけスリープ状態にするコマンドがスケジュールされています。
使用法
$browser.sleep(ms: number): Promise<void>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
スリープ終了時に解決される約束。 |
ms |
number |
スリープにかかる時間 (ミリ秒)。 |
例
await $browser.get("https://www.yahoo.com/");
await $browser.sleep(3 * 1000);
await $browser.takeScreenshot();
switchTo
このブラウザテスト API には、ドライバーのフォーカスを別のフレームやウィンドウに変更するためのインターフェースが用意されています。
使用法
$browser.switchTo(): TargetLocator;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
TargetLocator | このインスタンスの TargetLocator インターフェース。 |
TargetLocator
ドライバーのフォーカスを別のフレームまたはウィンドウに変更するためのインターフェース。
インスタンス・メソッド
| タイプ | 説明 |
|---|---|
activeElement(): WebElementPromise; |
現在の文書の document.activeElement エレメント、または activeElement が使用できない場合は document.body エレメントを取得するコマンドをスケジュールします。 |
defaultContent(): Promise<void>; |
今後のすべてのコマンドのフォーカスをページの最初のフレームに切り替えるコマンドをスケジュールします。 ターゲットフレームは、以下のいずれかの値として指定できます。 - ` window.frames ` 内のインデックス(0 から始まる)を指定する数値。 - ` WebElement ` への参照。これは、`<frame>` または `<iframe iframe > frame ` DOM 要素に対応します。 - ページ上の最上位のフレームを選択するための `top` null 値。 passing は、 nulldefaultContent を呼び出すのと同じです。 |
frame(id: Number |WebElement| null): Promise<void>; |
今後のすべてのコマンドのフォーカスをページ上の別のフレームに変更します。 |
parentFrame(): Promise<void>; |
今後のすべてのコマンドのフォーカスを、現在選択されているフレームの親フレームに変更します。 ドライバーが既に最上位のブラウズ・コンテキストにフォーカスしている場合、このコマンドは効果がありません。 |
window(nameOrHandle: string):
Promise<void>; |
今後のすべてのコマンドのフォーカスを別のウィンドウに切り替えるコマンドをスケジュールします。 Windows は、その window.name 属性またはハンドル( getWindowHandle によって返されるもの)で指定できます。 |
newWindow(typeHint: string):
Promise<void>; |
ブラウザウィンドウを作成し、このドライバの今後のコマンドのフォーカスを新しいウィンドウに切り替えます。 typeHint 「ウィンドウ」または「タブ」。 作成されたウィンドウは、要求されたタイプであることは保証されません。 ドライバが要求されたタイプに対応していない場合、ドライバが対応している任意のタイプの新しいブラウザウィンドウが開かれます。 ドライバーが新しいウィンドウにフォーカスを移すと、返されたプロミスが決済されます。 |
alert(): AlertPromise; |
window.alert()、 window.confirm()、および window.prompt()によって開かれたものなど、アクティブなモーダル・ダイアログにフォーカスを変更するコマンドをスケジュールします。 使用可能なオープン・アラートがない場合、返された promise は error.NoSuchAlertError で拒否されます。 |
例
/**
* samples of getting current window handle
* switch to a new window
* open new page in new tab
*/
console.log("Windows handle: ", await $browser.getWindowHandle(), "Current url: ", await $browser.getCurrentUrl());
console.log("switch to calendar tab");
let originalWindow = await $browser.getWindowHandle();
await $browser.switchTo().newWindow();
/**
* navigate to www.timeanddate.com
* assert page title by getTitle() api
* assert page title by getPageSource() api
*/
console.log("Access time and date page");
await $browser.get("http://www.timeanddate.com");
let page = await $browser.getPageSource();
assert.isTrue(page.includes("<title>timeanddate.com</title>"));
console.log("Page title: ", await $browser.getTitle());
/**
* switch back to original window
* take screenshot
*/
await $browser.switchTo().window(originalWindow);
await $browser.takeScreenshot();
takeScreenshot
このブラウザテスト API では、スクリーンショットを撮影するコマンドがスケジュールされています。 ドライバーは、以下の要素のスクリーン・ショットを優先順に返そうとします。
- ページ全体
- 現行ウィンドウ
- 現在のフレームの表示部分
- ブラウザーを含む表示全体
使用法
$browser.takeScreenshot(): Promise<string>;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<string> |
base-64 でエンコードされた PNG としてスクリーン・ショットを使用して解決される promise。 |
待ち
このブラウザテスト API は、ある条件が「真とみなされる」値になるのを待機します。 条件は、条件によって、カスタム関数として、または任意の promise 型の thenable として指定できます。
条件または関数の場合、待機は、真の値を返すまで条件を繰り返し評価します。 API が条件式を評価する際にエラーが発生した場合、そのエラーは伝播される。 条件が promise を返すと、ポーリング・ループはそれが解決されるまで待機し、解決された値を使用して条件が満たされているかどうかを確認します。 保証の解決時間は、待機がタイムアウトになったかどうかを確認するために常に考慮されます。
指定された条件が WebElementCondition, である場合、waitは WebElementPromise を返し、その値は条件を満たした要素に解決されます。
使用法
$browser.wait(
condition: WebElementCondition,
opt_timeout?: number,
opt_message?: string): WebElementPromise;
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<string> |
条件関数によって返される、または条件がタイムアウトになった場合に拒否される最初の真の値で解決される promise。 入力条件が WebElementCondition, のインスタンスである場合、戻り値は WebElementPromise となります。 |
condition |
IThenable<(T|null)> または Condition<(T|null)> または function(WebDriver): (T|null) |
待機する条件。promise として定義されるか、条件オブジェクトとして定義されるか、条件として評価する関数として定義されます。 |
opt_timeout |
number |
条件が true になるのを待機する期間 (ミリ秒)。 |
opt_message |
stringまたはfunction |
待機がタイムアウトになった場合に使用するオプションのメッセージ。 |
例
例 1: エレメントがページに表示されるのを最大 10 秒待機するには、以下の例に示すようにコマンドを使用します。
async function example() {
let button = await $browser.wait(
$driver.until.elementLocated($driver.By.id("foo")),
10000
);
await button.click();
}
例 2: エレメントを待機してクリックするには、以下の例に示すようにコマンドを使用します。
await $browser.wait(until.elementLocated(by), timeout);
const element = await $browser.findElement(by, timeout);
await $browser.wait(until.elementIsVisible(element), timeout, `${by} not visible`);
await $browser.wait(until.elementIsEnabled(element), timeout, `${by} not enabled`);
await element.click();
waitForAndFindElement
このブラウザテスト( API )は、ページ上の要素を待機して検出し、その要素が表示されるのを待ちます。 見つからない場合、シンセティック・モニターはエラーを返します。 タイムアウト値はオプションです。 これは、要素を検出するタスクと、その可視性を待機するタスクの両方に個別に適用されます。 したがって、最悪のシナリオでは、このメソッドは、指定されたタイムアウト値の 2 倍まで時間がかかる可能性があります。 デフォルトのタイムアウト値は 1000 ミリ秒 (1 秒) です。
パラメーターで指定されたロケーターを持つエレメントが検出され、そのエレメントが可視になった場合、または指定された timeout内で指定された条件が満たされなかった場合、 WebElementPromise が戻されます。
使用法
$browser.waitForAndFindElement(locator: Locator, timeout?: number) : WebElementPromise;
この関数は以下のようになります。
const element = await $browser.wait(until.elementLocated(locator), timeout);
await $browser.wait(until.elementIsVisible(element), timeout);
return await $browser.findElement(locator);
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
WebElementPromise |
見つかったエレメントに対してコマンドを発行するために使用できる WebElement 。 エレメントが見つからない場合、エレメントは無効になり、スケジュールされているすべてのコマンドが停止します。 |
locator |
by.By | function |
使用するロケーター。 |
timeout |
number |
オプション: 待機する時間の長さ (ミリ秒)。 |
例
$browser.waitForAndFindElement($driver.By.id("username"), 10000);
waitForPendingRequests
この関数は、以前のバージョンとの互換性を確保するためのものです。
使用法
$browser.waitForPendingRequests(timeout?: number): Promise<void>;
この関数は、以下のようになります。
let script = "return document.readyState === 'complete'";
await $browser.wait(() => {
return $browser.executeScript(script);
}, timeout);
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
RETURN |
Promise<void> |
文書とすべての副次リソースのロードが終了したときに解決される promise。 |
timeout |
number |
待機する時間の長さ (ミリ秒)。 |