スワイプ
デスクトップ/モバイルWebおよびモバイルネイティブアプリのビューポートまたは要素内で特定の方向にスワイプします。
情報
モバイルネイティブアプリでのスワイプはW3C-actionsプロトコルに基づいており、指の押下と移動をシミュレートします。
これはAndroid向けのmobile: scrollGesture
またはiOS向けのmobile: scroll
コマンドとは異なります。後者はAppium Driverプロトコルに基づいており、
NATIVEコンテキストのモバイルプラットフォームでのみ利用可能です。
このコマンドは以下の最新コンポーネントでのみ動作します:
- Appiumサーバー(バージョン2.0.0以上)
appium-uiautomator2-driver
(Android用)appium-xcuitest-driver
(iOS用)
互換性の問題を避けるため、ローカルまたはクラウドベースのAppium環境を定期的に更新してください。
座標に基づくスワイプ
絶対に必要でない限り、from
とto
オプションの使用は避けてください。これらはデバイス固有のものであり、デバイス間で一貫して動作しない可能性があります。
要素内で信頼性の高いスワイプを行うには、scrollableElement
オプションを使用してください。
パラメータ
名前 | タイプ | 詳細 |
---|---|---|
options オプション | object, boolean | browser.swipe() のオプション。デスクトップ/モバイルWebのデフォルト:{ direction: 'up', duration: 1500, percent: 0.95, scrollableElement: WebdriverIO.Element } |
options.direction オプション | string | down 、up 、left またはright のいずれか、デフォルトはup 。モバイルネイティブアプリのみ |
下方向 開始点: 画面の上部付近に指を置きます。 動き: 指を下方向に画面の下部へスライドさせます。 動作: コンテキストによって異なります: - ホーム画面やアプリケーションでは、通常コンテンツを上に向かってスクロールします。 - 上端からは、通知パネルやクイック設定を開くことが多いです。 - ブラウザや読書アプリでは、コンテンツをスクロールするために使用できます。 | ||
左方向 開始点: 画面の右側に指を置きます。 動き: 指を 水平に左側へスライドさせます。> 動作: このジェスチャーへの反応はアプリケーションによって異なります: - カルーセルや一連の画像の次の項目に移動できます。 - ナビゲーションコンテキストでは、前のページに戻ったり、現在のビューを閉じたりする場合があります。 - ホーム画面では、通常次の仮想デスクトップや画面に切り替わります。 | ||
右方向 開始点: 画面の左側に指を置きます。 動き: 指を水平に右側へスライドさせます。 動作: 左にスワイプするのと似ていますが、方向が逆です: -- カルーセルやギャラリーの前の項目に移動することが多いです。 - アプリのサイドメニューやナビゲーションドロワーを開くために使用できます。 - ホーム画面では、通常前の仮想デスクトップに切り替わります。 | ||
上方向 開始点: 画面の下部付近に指を置きます。 動き: 指を上方向に画面の上部へスライドさせます。> 動作: コンテキストによって異なるアクションが発生する可能性があります: - ホーム画面やリストでは、通常コンテンツを下にスクロールします。 - 全画面アプリでは、追加オプションやアプリドロワーを開く場合があります。 - 特定のインターフェースでは、「更新」アクションをトリガーしたり、検索バーを開いたりする可能性があります。 | ||
options.duration オプション | number | スワイプの持続時間(ミリ秒)。デフォルトは1500 ミリ秒です。値が小さいほど、スワイプは速くなります。 |
options.scrollableElement オプション | Element | スワイプする対象の要素。要素が提供されない場合、iOSでは -ios predicate string:type == "XCUIElementTypeApplication" 、Androidでは //android.widget.ScrollView' というセレクタが使用されます。デフォルトのセレクタに複数の要素が一致する場合、デフォルトでは最初に一致する要素が選択されます。モバイルネイティブアプリのみ |
options.percent オプション | number | スワイプする(デフォルトの)スクロール可能要素の割合。これは0から1までの値です。デフォルトは0.95 です。絶対に画面の上|下|左|右端からスワイプしないでください。通知バーなどのOS/アプリ機能がトリガーされ、予期しない結果を招く可能性があります。 from とto が提供される場合、これは効果がありません。 |
以下の値はscrollableElement が提供されていない場合のみ効果があります。それ以外の場合は無視されます。 | ||
options.from オプション | object | スワイプの開始位置のx座標とy座標。scrollableElement が提供されている場合、これらの座標は効果がありません。 |
options.from.x オプション | number | スワイプの開始位置のx座標。 |
options.from.y オプション | number | スワイプの開始位置のy座標。 |
options.to オプション | object | スワイプの終了位置のx座標とy座標。scrollableElement が提供されている場合、これらの座標は効果がありません。 |
options.to.x オプション | number | スワイプの終了位置のx座標。 |
options.to.y オプション | number | スワイプの終了位置のy座標。 |
例
swipe.js
it('should execute a default swipe', async () => {
// Default will be a swipe from the bottom to the top, meaning it will swipe UP
await browser.swipe();
});
swipe.with.options.js
it('should execute a swipe with options', async () => {
await browser.swipe({
direction: 'left', // Swipe from right to left
duration: 5000, // Last for 5 seconds
percent: 0.5, // Swipe 50% of the scrollableElement
scrollableElement: $('~carousel'), // The element to swipe within
})
});