Screen Handler (onScreen) (Vision)
You can register callback that is called on screen changed.
functions
function | description |
---|---|
onScreen | The code block that is registered is executed on specified screen is displayed |
Sample code
ScreenHandler1.kt
(src/test/kotlin/tutorial/basic/ScreenHandler1.kt
)
You can register screen handler using onScreen
function. The handler is going to be removed automatically after it has been performed.
@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")
}.tap("Network & internet")
/**
* onScreen("[Network & internet Screen]") is called
*/
/**
* onScreen("[Internet Screen]") is called
*/
}.expectation {
it.exist("Network details")
}
}
}
}
You can prevent from removing the registered handler by specifying keep = true
.
@Test
@Order(20)
fun screenHandler_keep() {
scenario {
case(1) {
condition {
it.macro("[Android Settings Top Screen]")
}.action {
onScreen("[Network & internet Screen]") { c ->
it.tap("Internet")
c.keep = true // The screen handler keeps registered. Not released.
}
it.tap("Network & internet")
}.expectation {
it.exist("Network preferences")
}
}
}
}
You can register the handler permanently to prevent removint it by specifying permanent = true
.
@Test
@Order(30)
fun screenHandler_permanent() {
scenario {
case(1) {
condition {
it.macro("[Android Settings Top Screen]")
}.action {
onScreen("[Network & internet Screen]", permanent = true) {
it.tap("Internet")
}
it.tap("Network & internet")
}.expectation {
it.exist("Network preferences")
}
}
}
}