J'essaie de localiser mes UITest pour travailler avec d'autres langages (actuellement en utilisant Snapshot pour automatiser les captures d'écran, c'est pourquoi j'ai besoin que cela fonctionne).iOS UITests NSLocalizedString ne fonctionne pas
Mon problème principal est maintenant avec un bouton Terminé dans IQKeyboardManager.
En anglais, j'ai le code suivant et il fonctionne très bien:
app.toolbars.buttons["Done"].tap()
taper sur le bouton fait après la saisie de texte.
En espagnol, ce bouton s'appelle "OK". On dirait que ça vient d'une chaîne locale UIKit par défaut ou quelque chose comme ça. J'ai essayé d'ajouter un fichier .strings dans mon dossier UITest es.lproj
et de mettre "UIBarButtonSystemItem.Done" = "OK";
dedans.
J'ai aussi changé pour être:
app.toolbars.buttons[NSLocalizedString("UIBarButtonSystemItem.Done", bundle: Bundle.main, value: "Done", comment: "")].tap()
et cela ne fonctionne pas. Toujours utilisé "Terminé".
Il donne toujours l'erreur:
No matches found for "Done" Button.
J'ai aussi essayé:
et qui a donné lieu à une erreur:
No matches found for "UIBarButtonSystemItem.Done" Button.
il ressemble mon fichier .strings ne travaille pas pour mes UITest. Des idées de comment le faire fonctionner?
Si le fichier de chaîne se trouve dans le regroupement de la cible de test de l'interface utilisateur, je ne pense pas que vous puissiez y accéder en utilisant Bundle.main. Voir https://stackoverflow.com/questions/1879247/why-cant-code-inside-unit-tests-find-bundle-resources ou https://stackoverflow.com/questions/33609325/xcode-7-uitests-with -localized-ui –
@TitouandeBailleul Ok, ça marche mieux. Mais pour une raison quelconque, il utilise maintenant mon fichier .strings espagnol pour tout. Même quand c'est en anglais. Normalement dans mon projet principal j'utilise la clé pour être la version anglaise et l'espagnol et d'autres versions sont dans les fichiers .strings. Mais pour une raison quelconque, il utilise le fichier espagnol .strings même en anglais. Des idées? –