Skip to content

Commit 59e2548

Browse files
committed
Fix swipeTo to use _isDisplayedSafe and increase wait timeouts for swipe tests
1 parent 54f4b58 commit 59e2548

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

lib/helper/Appium.js

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1319,28 +1319,26 @@ class Appium extends Webdriver {
13191319
let currentSource
13201320
return browser
13211321
.waitUntil(
1322-
() => {
1322+
async () => {
13231323
if (err) {
13241324
return new Error(`Scroll to the end and element ${searchableLocator} was not found`)
13251325
}
1326-
return browser
1327-
.$$(parseLocator.call(this, searchableLocator))
1328-
.then(els => els.length && els[0].isDisplayed())
1329-
.then(res => {
1330-
if (res) {
1331-
return true
1332-
}
1333-
return this[direction](scrollLocator, offset, speed)
1334-
.getSource()
1335-
.then(source => {
1336-
if (source === currentSource) {
1337-
err = true
1338-
} else {
1339-
currentSource = source
1340-
return false
1341-
}
1342-
})
1343-
})
1326+
const els = await browser.$$(parseLocator.call(this, searchableLocator))
1327+
if (els.length) {
1328+
const displayed = await this._isDisplayedSafe(els[0])
1329+
if (displayed) {
1330+
return true
1331+
}
1332+
}
1333+
1334+
await this[direction](scrollLocator, offset, speed)
1335+
const source = await this.browser.getPageSource()
1336+
if (source === currentSource) {
1337+
err = true
1338+
} else {
1339+
currentSource = source
1340+
return false
1341+
}
13441342
},
13451343
timeout * 1000,
13461344
errorMsg,

test/helper/Appium_test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ describe('Appium', function () {
367367
await app.tap("//android.widget.Button[@resource-id = 'io.selendroid.testapp:id/touchTest']")
368368
await app.waitForText('Gesture Type', 10, "//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/gesture_type_text_view']")
369369
await app.swipeUp("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/gesture_type_text_view']")
370-
await app.waitForElement("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/text_view4']", 5)
370+
await app.waitForElement("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/text_view4']", 10)
371371
const type = await app.grabTextFrom("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/gesture_type_text_view']")
372372
const vy = await app.grabTextFrom("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/text_view4']")
373373
assert.equal(type, 'FLICK')
@@ -379,7 +379,7 @@ describe('Appium', function () {
379379
await app.tap("//android.widget.Button[@resource-id = 'io.selendroid.testapp:id/touchTest']")
380380
await app.waitForText('Gesture Type', 10, "//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/gesture_type_text_view']")
381381
await app.swipeUp("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/gesture_type_text_view']")
382-
await app.waitForElement("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/text_view4']", 5)
382+
await app.waitForElement("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/text_view4']", 10)
383383
const type = await app.grabTextFrom("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/gesture_type_text_view']")
384384
const vy = await app.grabTextFrom("//android.widget.TextView[@resource-id = 'io.selendroid.testapp:id/text_view4']")
385385
assert.equal(type, 'FLICK')

0 commit comments

Comments
 (0)