※ このトピックの一部は機械翻訳で処理されています。
Autify Nexusでテストを自動化している際、標準のノーコードステップでは解決が難しい問題に直面することがあります。
たとえば、以下のようなケースです:
特定の座標でのクリックが必要なCanvasベースのUI
再試行が必要な不安定な要素
自動的に待機が発生しないナビゲーション
広告やポップアップが重要な要素を覆っている
レイアウト依存のアプリでビューポートサイズの調整が必要
ページが完全に読み込まれるまでの確認が必要
こうした問題には、Playwrightコードスニペットを使用することで、より信頼性の高い解決が可能です。
スニペットの使い方
Playwrightコードステップをテスト内に追加
その中にコードスニペットをコピー&ペースト
ページ上のターゲット要素に合わせてロケーターやセレクタを適切に置き換える
ブラウザの戻る/進むナビゲーション
ナビゲーションを行いたいシナリオの箇所に、Playwrightコードステップを追加してください。
戻る:
await page.goBack()進む:
await page.goForward()ビューポートサイズの変更
想定された表示に合わせて、ページサイズを特定の幅と高さに調整します。
await page.setViewportSize({ width: 999, height: 999 });要素を強制クリック
要素が「理想的な」クリック可能な状態でない場合(例:別の要素に隠れている場合)でも、強制的にクリックを実行します。
await page.click('#my-button', { force: true });邪魔な要素(広告など)の削除
テスト操作の妨げとなる広告やフローティングバナーを削除します。
await page.evaluate(() => {
const ad = document.querySelector('.ads-banner');
if (ad) ad.remove();
});不安定なボタンの再試行
一部のボタンは、最初の試行では安定して動作しないことがあります。このコードは、失敗した場合に一度再試行します。
try {
await page.click('#unstable-button');
} catch (e) {
console.warn('Retrying button click...');
await page.click('#unstable-button');
}ページ/要素の準備完了までリロード
ページが不安定な状態で読み込まれることがある場合は、リロードして準備が整っているか確認してください。
for (let i = 0; i < 5; i++) {
await page.reload();
if (await page.isVisible('#ready')) break;
console.log("Element/page is not ready!");
}リンククリック後のナビゲーション待ち
リンクをクリックするとナビゲーションが発生する場合は、ページの読み込みが完了するのを明示的に待機してから次の処理に進むようにしてください。
await Promise.all([
page.waitForNavigation(),
page.click('a.next-page'),
]);