スクリーンハンドラー (onScreen関数)
イレギュラーハンドラー はコマンド実行の前に呼び出され、テストセッション内でグローバルに有効になります。
スクリーンハンドラー は、currentScreenが変更される時に呼び出され、テストシナリオの一部で有効にすることができます。
パフォーマンス上の理由から、すべてのイレギュラーな手続きをグローバルハンドラで実装するのは良いアイデアではありません。
onScreen関数 を使用することで、テストシナリオで必要な画面に対してイレギュラーな手続きを実装することができます。
OnScreen1.kt
(kotlin/tutorial/inaction/ScreenHandler1.kt
)
package tutorial.inaction
import org.junit.jupiter.api.Order
import org.junit.jupiter.api.Test
import shirates.core.configuration.Testrun
import shirates.core.driver.commandextension.*
import shirates.core.driver.eventextension.onScreen
import shirates.core.logging.printWarn
import shirates.core.testcode.UITest
@Testrun("testConfig/android/androidSettings/testrun.properties")
class ScreenHandler1_ja : UITest() {
@Test
@Order(10)
fun onScreen1() {
onScreen("[ネットワークとインターネット]") { c ->
printWarn("${c.screenName} が表示されました。")
c.removeHandler()
}
onScreen("[System Screen]") { c ->
printWarn("${c.screenName} が表示されました。")
c.removeHandler()
}
scenario {
case(1) {
condition {
it.screenIs("[Android設定トップ画面]")
}.action {
it.tap("[ネットワークとインターネット]")
}.expectation {
it.screenIs("[ネットワークとインターネット画面]")
}
}
case(2) {
condition {
it.pressBack()
it.screenIs("[Android設定トップ画面]")
}.action {
it.tapWithScrollDown("[システム]")
}.expectation {
it.screenIs("[システム画面]")
}
}
}
}
}
disableScreenHandler(), enableScreenHandler()
これらの関数を使用することでスクリーンハンドラーを無効化または有効化することができます。