在 EarlGrey 中,等待元素出现的非轮询方式是什么?
In EarlGrey, what's the non-polling way to wait for an element to appear?
目前我正在等待一个元素出现这样的:
let populated = GREYCondition(name: "Wait for UICollectionView to populate", block: { _ in
var errorOrNil: NSError?
EarlGrey().selectElementWithMatcher(collectionViewMatcher)
.assertWithMatcher(grey_notNil(), error: &errorOrNil)
let success = (errorOrNil == nil)
return success
}).waitWithTimeout(20.0)
GREYAssertTrue(populated, reason: "Failed to populate UICollectionView in 20 seconds")
持续轮询 20 秒以填充集合视图。有没有更好的非轮询方式来实现这一点?
EarlGrey
建议使用其 synchronization 来等待元素,而不是尽可能使用睡眠或等待等条件检查。
EarlGrey 在 GREYConfiguration 中有一个变量 kGREYConfigKeyInteractionTimeoutDuration
值设置为 30 秒并且状态 -
* Configuration that holds timeout duration (in seconds) for action and assertions. Actions or
* assertions that are not scheduled within this time will fail due to timeout.
由于您要等待 20 秒才能进行检查,因此您可以简单地将其更改为 -
EarlGrey().selectElementWithMatcher(collectionViewMatcher)
.assertWithMatcher(grey_notNil(), error: &errorOrNil)
并且它会在没有超时的情况下被填充。
我喜欢将伯爵茶与基本的 XCTest 联系起来,我想出了这个简单的解决等待元素问题的方法:
app.webViews.buttons["logout()"].waitForExistence(timeout: 5)
app.webViews.buttons["logout()"].tap()
目前我正在等待一个元素出现这样的:
let populated = GREYCondition(name: "Wait for UICollectionView to populate", block: { _ in
var errorOrNil: NSError?
EarlGrey().selectElementWithMatcher(collectionViewMatcher)
.assertWithMatcher(grey_notNil(), error: &errorOrNil)
let success = (errorOrNil == nil)
return success
}).waitWithTimeout(20.0)
GREYAssertTrue(populated, reason: "Failed to populate UICollectionView in 20 seconds")
持续轮询 20 秒以填充集合视图。有没有更好的非轮询方式来实现这一点?
EarlGrey
建议使用其 synchronization 来等待元素,而不是尽可能使用睡眠或等待等条件检查。
EarlGrey 在 GREYConfiguration 中有一个变量 kGREYConfigKeyInteractionTimeoutDuration
值设置为 30 秒并且状态 -
* Configuration that holds timeout duration (in seconds) for action and assertions. Actions or
* assertions that are not scheduled within this time will fail due to timeout.
由于您要等待 20 秒才能进行检查,因此您可以简单地将其更改为 -
EarlGrey().selectElementWithMatcher(collectionViewMatcher)
.assertWithMatcher(grey_notNil(), error: &errorOrNil)
并且它会在没有超时的情况下被填充。
我喜欢将伯爵茶与基本的 XCTest 联系起来,我想出了这个简单的解决等待元素问题的方法:
app.webViews.buttons["logout()"].waitForExistence(timeout: 5)
app.webViews.buttons["logout()"].tap()