Xcode UI test - UI Testing Failure - Failed to scroll to visible (by AX action) when tap on Search field "Cancel' button

前端 未结 8 1482
时光取名叫无心
时光取名叫无心 2020-12-04 08:32

I am trying to dismiss the search field by tapping \'Cancel\' button in search bar.

The test case is failing to find the cancel button. It was working fine in Xcode

8条回答
  •  独厮守ぢ
    2020-12-04 08:54

    This question ranks well for Google queries around the term "Failed to scroll to visible (by AX action) Button". Given the age of the question I was inclined to think this was no longer an issue with the XCUITest framework as the accepted answer suggests.

    I found this issue was due to the XCElement existing, but being hidden behind the software keyboard. The error is emitted by the framework since it is unable to scroll a view that exists into view to be tappable. In my case the button in question was behind the software keyboard sometimes.

    I found the iOS Simulator's software keyboard may be toggled off in some cases (eg: on your machine) and toggled on in others (eg: on your CI). In my case I had toggled the software keyboard off on one machine, and by default it was toggled on on others.

    Solution: Dismiss the keyboard before attempting to tap buttons that may be behind it.

    I found tapping somewhere that explicitly dismissed the keyboard before tapping on the button solved my problem in all environments.

    I added add some actions to get the current responder to resignFirstResponder. The views behind my text views will force the first responder to resign, so I tap somewhere just underneath the last text area.

     /// The keyboard may be up, dismiss it by tapping just below the password field
    let pointBelowPassword = passwordSecureTextField.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 1))
    pointBelowPassword.press(forDuration: 0.1)
    

提交回复
热议问题