我試圖本地化我的UITests與其他語言(目前使用快照自動截圖,所以這就是爲什麼我需要這個工作)。iOS UITests NSLocalizedString不工作
我現在的主要問題是在IQKeyboardManager中有一個完成按鈕。
在英語中我有下面的代碼,它工作正常:
app.toolbars.buttons["Done"].tap()
輸入文字後,點擊完成按鈕。
在西班牙語中,該按鈕被稱爲「OK」。看起來它是從一些默認的UIKit本地化字符串或類似的東西得到的。
我嘗試在我的UITest es.lproj
文件夾中添加一個.strings文件,並將"UIBarButtonSystemItem.Done" = "OK";
放入其中。
我也改變了它是:
app.toolbars.buttons[NSLocalizedString("UIBarButtonSystemItem.Done", bundle: Bundle.main, value: "Done", comment: "")].tap()
,並沒有奏效。始終使用「完成」。
它總是給人錯誤:
No matches found for "Done" Button.
我也試過:
和導致錯誤:
No matches found for "UIBarButtonSystemItem.Done" Button.
因此,它看起來像我的.strings文件不適合我的UITest。任何想法如何讓它工作?
如果字符串文件位於UI測試目標的包,然後我不認爲你可以使用Bundle.main訪問它。請參閱https://stackoverflow.com/questions/1879247/why-cant-code-inside-unit-tests-find-bundle-resources或https://stackoverflow.com/questions/33609325/xcode-7-uitests-with -localized-ui –
@TitouandeBailleul好吧,似乎工作得更好。但由於某種原因,它現在正在使用我的西班牙文.strings文件來處理所有事情。即使它是英文的。通常在我的主要項目中,我使用的關鍵是英文版本,西班牙文版本和其他版本是在.strings文件中。但由於某些原因,它甚至使用英文的西班牙文.strings文件。有任何想法嗎? –