スクリーンハンドラー (onScreen) (Vision)
画面が変化した時に呼び出されるコールバックを登録することができます。
関数
関数 | 説明 |
---|---|
onScreen | 登録したコードブロックが指定した画面が表示された時に実行されます |
サンプルコード
ScreenHandler1.kt
(src/test/kotlin/tutorial/basic/ScreenHandler1.kt
)
onScreen関数を使用してスクリーンハンドラーを登録します。登録されたハンドラーは実行後に自動的に登録が解除されます。
@Test
@Order(10)
fun screenHandler() {
scenario {
case(1) {
condition {
it.macro("[Android Settings Top Screen]")
}.action {
onScreen("[Network & internet Screen]") {
it.tap("Internet")
}.onScreen("[Internet Screen]") {
it.tap("AndroidWifi")
}
it.tap("Network & internet")
/**
* onScreen("[Network & internet Screen]") is called
*/
/**
* onScreen("[Internet Screen]") is called
*/
}.expectation {
it.exist("Network details")
}
}
}
}
自動的に解除されないようにするにはハンドラー内で keep = true
を指定します。
@Test
@Order(20)
fun screenHandler_keep() {
scenario {
case(1) {
condition {
it.macro("[Android設定トップ画面]")
}.action {
onScreen("[ネットワークとインターネット画面]") { c ->
it.tap("インターネット", last = true)
c.keep = true // スクリーンハンドラーは登録されたままになります。登録解除されません。
}
it.tap("ネットワークとインターネット")
}.expectation {
it.exist("ネットワーク設定")
}
}
}
}
ハンドラーを自動的に解除されないように登録するには permanent = true
を指定します。
@Test
@Order(30)
fun screenHandler_permanent() {
scenario {
case(1) {
condition {
it.macro("[Android設定トップ画面]")
}.action {
onScreen("[ネットワークとインターネット画面]", permanent = true) {
it.tap("インターネット", last = true)
}
it.tap("ネットワークとインターネット")
}.expectation {
it.exist("ネットワーク設定")
}
}
}
}