AppiumでAndroidのアプリをスワイプさせようと思ったら罠を踏んだ話
Appiumを使ってAndroidのアプリをスワイプさせようと思ったら罠を踏みました。
AndroidDriverでswipeがなくなった?っぽかったので
「TouchActionで押しながらずらすかー」
と思ったら動きませんでした。
環境
- windows10
- Android Studio 3.0.1
- Appium 1.7.1
- Seleniumまわりのjar
動くかなって思ったコード
右から左にスワイプさせたかった。
AndroidDriver driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"), capabilities); TouchAction act = new TouchAction(driver); act.press(950,950).moveTo(90,950).release().perform();
こんな感じに怒られた
InvalidCoordinatesException とのこと。
org.openqa.selenium.interactions.InvalidCoordinatesException: The coordinates provided to an interactions operation are invalid.
こうしたら動いた
JavascriptExecutorで対応しようかと思ったんだけど、ちょっとした工夫で動いてくれた。
press()で座標指定して画面を押した後に waitAction()を呼んでから moveToで座標を移動させる。 これでゆっくりだが右から左にスワイプしてくれる。
AndroidDriver driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"), capabilities); TouchAction act = new TouchAction(driver); act.press(950,950).waitAction().moveTo(90,950).release().perform();
issueあがってました
こんなこともあるある。