scroll (Vision)
You can scroll screen using these functions.
scroll functions
| function | description |
|---|---|
| scrollDown | scroll down |
| scrollUp | scroll up |
| scrollRight | scroll right |
| scrollLeft | scroll left |
| scrollToBottom | scroll to the bottom of the scroll area |
| scrollToTop | scroll to top of the scroll area |
| scrollToRightEdge | scroll to right edge of the scroll area |
| scrollToLeftEdge | scroll to left edge of the scroll area |
| withScrollDown | select element with scrolling down |
| withScrollUp | select element with scrolling up |
| withScrollRight | select element with scrolling right |
| withScrollLeft | select element with scrolling left |
| withoutScroll | select element without scrolling |
Sample code
Scroll1.kt
(kotlin/tutorial/basic/Scroll1.kt)
@Test
@Order(10)
fun scrollDown_scrollUp() {
scenario {
case(1) {
condition {
it.macro("[Android Settings Top Screen]")
}.action {
it
.scrollDown()
.scrollDown()
.scrollUp()
.scrollUp()
}
}
case(2) {
action {
it
.scrollDown(scrollDurationSeconds = 5.0, startMarginRatio = 0.1)
.scrollDown(scrollDurationSeconds = 3.0, startMarginRatio = 0.3)
.scrollUp(scrollDurationSeconds = 5.0, startMarginRatio = 0.1)
.scrollUp(scrollDurationSeconds = 3.0, startMarginRatio = 0.3)
}
}
}
}
@Test
@Order(20)
fun scrollToBottom_scrollToTop() {
scenario {
case(1) {
condition {
it.macro("[Android Settings Top Screen]")
}.action {
it.scrollToBottom(repeat = 2)
}.expectation {
it.exist("Tips & support")
}
}
case(2) {
action {
it.scrollToTop(repeat = 2)
}.expectation {
it.exist("Settings")
}
}
}
}
@Test
@Order(30)
fun withScroll() {
scenario {
case(1) {
condition {
it.macro("[Android Settings Top Screen]")
}.expectation {
withScrollDown {
it
.detect("Notifications").textIs("Notifications")
.detect("Accessibility").textIs("Accessibility")
.detect("Tips & support").textIs("Tips & support")
}
withScrollUp {
it
.detect("Accessibility").textIs("Accessibility")
.detect("Notifications").textIs("Notifications")
}
}
}
case(2) {
expectation {
withScrollDown {
it
.exist("Notifications")
.exist("Accessibility")
.exist("Tips & support")
}
withScrollUp {
it
.exist("Tips & support")
.exist("Accessibility")
.exist("Notifications")
}
}
}
case(3) {
action {
withScrollDown {
it.tap("Accessibility")
}
}.expectation {
it.screenIs("[Accessibility Screen]")
}
}
case(4) {
action {
it.pressBack()
withScrollUp {
it.tap("Network & internet")
}
}.expectation {
it.screenIs("[Network & internet Screen]")
}
}
}
}