ローコードテスト自動化ツール T-DASH

カスタム動作を使用してスクロールバーを操作しよう

はじめに

T-DASHでスクロールバーを操作する方法をご説明します。
標準動作では「要素が見つかるまでスクロールする」が実装されていますが、本カスタム動作を使用するとユーザーの任意の場所までピクセル単位で動かすことが可能になります。

もくじ

詳細

1. サンプルファイルのダウンロード

ダウンロードはこちらから(sync_scroll.zip)
https://github.com/valtes-rd/t-dash/releases/tag/T-DASH_tutorial_scroll

1-1. sync_scroll.zipの内容

  1. syncファイル
    • カスタム動作が入ったプロジェクトファイルです、インポートしてご使用ください
  2. sample.html

プロジェクトファイル(syncファイル)のインポート方法は以下をご参照ください。
■プロジェクトファイルをインポートしよう
https://service.valtes.co.jp/t-dash/function/tutorial/import_export_projectfiles_vol_001

1-2. 注意点

プロジェクトファイルはインポートすると、
プロジェクト内のすべての情報がインポートした情報で上書きされます。

2. 画面全体を縦スクロールしたい場合

2-1. カスタム動作を作成する

まずはカスタム動作を作成していきます。
左メニュー「動作定義」タブ→「カスタム動作」を選択し、「+新規カテゴリ作成」をクリックします。

カテゴリを作成して「作成」をクリックします。
キーは半角英数字で記載してください。

カテゴリを作成後、「+カスタム動作を追加」をクリック。

動作関数を作成します。

画像のように「任意の動作名」 「利用変数」  「動作種類」 「任意のフォーマット」 「説明」を設定します。

追加するライブラリ:なし
追加するライブラリはありません。

行目:
${scroll}という変数に「Get WebElement」を使用して、要素を取得しています。
この場合、要素の引数は${location}なので、画面定義したXPathを取得している、ということになります。

②行目:
「Execute JavaScript」はWebページ上でJavaScriptコードを実行するために使います。
一番最初の引数(${scroll})のScrollTop(縦方向)に${value}(設定値)で入力したピクセル分、スクロールされます。
${value}は次に作成するテストケースで入力できます。

${scroll}=Get WebElement ${location}
Execute JavaScriptarguments[0].scrollTop += ${value};ARGUMENTS${scroll}
記述用

作成後に右上の「保存する」をクリックします。

2-2. テストケースを作成する

次にテストケースを作成します。

①行目:
「画面のURLをブラウザで開く」で該当ページを開きます。
URLのページを画面定義に登録していれば、「画面のURLをブラウザで開く」でも開くことができます。

②行目:
先ほど作成したカスタム動作を呼び出します。
動作カテゴリから「スクロール」を選択し、使用したいカスタム動作を選択します。
スクロールさせたい「画面名」、「要素名」、動かしたい値を設定値にピクセルで入力します。

③行目:
スクリーンショットをとります。
テスト完了後にreports > プロジェクトキーフォルダ > screenshotsフォルダにスクリーンショットが作成されます。

作成後に右上「保存する」をクリックします。

2-3. 画面定義を作成する

上部のスクリーンアイコンをクリックして、画面名を入力します。

テストに必要な画面と要素を定義します。
「画面定義」タブから画面を作成、要素名と値(XPath)を入力します。
今回は、画面全体のスクロールのため、ページすべてを要素として定義しています。(//html)

作成後に「保存する」クリックします。

2-4. テストを実行する

「テストスイート」タブに戻り、
テスト実行したいテストスイートとテストケースにチェックが入っていることを確認します。
最後に右上の「選択したテストを実行します」をクリックします。

テストが実行され、スクロールバーが操作されました。

3. フレームの一部を横スクロールしたい場合

サンプルhtmlを使用します。
フレームにスクロールバーがついている要素を、150px横スクロールしたい場合を想定してテスト作成します。

3-1. カスタム動作を作成する

まずはカスタム動作を作成していきます。
先ほどの「スクロールカテゴリ」の中に、新たなカスタム動作を作成していきます。
+カスタム動作を追加」をクリックします。

動作関数を作成します。

追加するライブラリ:なし
追加するライブラリはありません。

画像のように「任意の動作名」 「利用変数」  「動作種類」 「任意のフォーマット」 「説明」を設定します。
横方向のスクロールになるので、動作名、フォーマット、説明に横方向の内容を記載します。

行目:
縦スクロールのカスタム動作の内容と同じ
${scroll}という変数に「Get WebElement」を使用して、要素を取得しています。
この場合、要素の引数は${location}なので、画面定義したXPathを取得している、ということになります。

②行目:
「Execute JavaScript」はWebページ上でJavaScriptコードを実行するために使います。
一番最初の引数(${scroll})のScrollLeft(横方向)に${value}(設定値)で入力したピクセル分、スクロールされます。
${value}は次に作成するテストケースで入力できます。

${scroll}=Get WebElement ${location}
Execute JavaScriptarguments[0].scrollLeft += ${value};ARGUMENTS${scroll}
記述用

作成後に右上の「保存する」をクリックします。

3-2. テストケースを作成する

テストケースを作成します。
先ほど作成した「横スクロール」のカスタム動作を追加して、画面とスクロールしたいフレーム要素を指定します。
設定値はスクロールバーを動かしたい距離に設定します(画像では150pxになっています)

今回テストする対象はWebサイトではなくhtmlファイルのため、「URLをブラウザで開く」の設定値はファイルパスになります。
htmlファイルを任意の場所に格納し、そのパスを設定値に記載します。

3-3. 注意点

スクロールしたい項目がiframeで囲まれている場合があります。
その場合は、選択操作「フレームを選択する」を追加してフレームの選択を行ってください。
※今回のサンプルプロジェクトファイルにiframeはありません。

参考チュートリアル:XPathが正しくても、要素が取得できないケースに対応しよう(iframe)

3-4. 画面定義をする

サンプルhtmlという画面を作成し、テストに必要な画面と要素を定義します。
「画面定義」タブから画面を作成、要素名と値(XPath)を入力します。
今回は、スクロールしたい項目フレームを画面定義しています(//div[@class=”scroll-container”])

3-5. テストを実行する

テストが実行され、スクロールバーが操作されました。

4. スクリーンショットがとれない場合

テスト動作の切り替わりが早いとスクリーンショットがうまく実行できない時があります。
その場合はスクロール後に「秒待機」をいれることでスクリーンショットが動作します。

コメントする

CAPTCHA