kif-framework / KIF

Keep It Functional - An iOS Functional Testing Framework
Other
6.2k stars 909 forks source link

Xcode 14 "Failed to select from Picker" #1266

Open iankoller-vivid opened 1 year ago

iankoller-vivid commented 1 year ago

After upgrading to Xcode 14, UI tests that were using:

tester.selectPickerViewRow(withTitle: "Title", inComponent: 0)

are no longer working. I get the error message "Failed to select from Picker". When stepping through the KIF source code, the picker appears to be nil as if it can't find one on screen even though I see it when the tests are running.

I'm wondering if this is a bug or if there is another way we should be selecting from a picker with Xcode 14.

dostrander commented 1 year ago

Thanks for flagging, I'll take a look soon

dostrander commented 1 year ago

Confirmed that this seems to not work on iOS 16. Created a new workflow to run on it and it failed all of the pickers. Let's hope pickers aren't out of process now (like system alerts). I doubt it but let me double check that

iankoller-vivid commented 1 year ago

Thanks for taking a look. I'm not sure if this is related, but I'm also seeing another element (keyboard return button) that KIF can't seem to find:

Failed to find accessibility element with the label “Done”

I confirmed that the accessibility identifier is there and hasn't changed its name.

dostrander commented 1 year ago

Yeah that was reported here: https://github.com/kif-framework/KIF/issues/1267

Going to look into both of these today. hopefully🤞 it's an easy fix :)

dostrander commented 1 year ago

Just want to circle back that this is not such as easy fix unfortunately. We will need to figure out how to access this because the picker view is now (with iOS 16) not within the application so we can't access it with our current infrastructure

We will need to figure out another way around this, likely trying to reverse engineer XCUI to see if we can mimic that. This will take a little while, sorry for the delay

evandorn commented 4 months ago

I assume Date Pickers also do not work in KIF? Calling KIF's "selectDatePickerValue" method apparently does nothing for me and I see no long messages in the console output. Date Pickers are also outside of the app's sandbox now?