带有 unicode 的字符串在新的 XCode UI 测试中不匹配并且测试失败

     2023-02-24     13

关键词:

【中文标题】带有 unicode 的字符串在新的 XCode UI 测试中不匹配并且测试失败【英文标题】:String with unicode doesn't match on new XCode UI Test and the test fails 【发布时间】:2015-09-25 11:37:10 【问题描述】:

我正在使用新的 XCode 7 进行一些 UI 测试。我的应用程序如何使用通知,第一次使用 iOS 时会自动询问“我的应用程序”希望向您发送通知。

当我记录测试时,XCode 在下面写下这些行:

- (void)testFirstUse 
    [XCUIDevice sharedDevice].orientation = UIDeviceOrientationPortrait;

    XCUIApplication *app = [[XCUIApplication alloc] init];
    [app.alerts[@"\U201cMyApp\U201d Would Like to Send You Notifications"].collectionViews.buttons[@"OK"] tap];
    [app.tables/*@START_MENU_TOKEN@*/.staticTexts[@"United States"]/*[[".cells.staticTexts[@\"United States\"]",".staticTexts[@\"United States\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/ tap];
    [app.navigationBars[@"Select a Country"].buttons[@"Next"] tap];


请注意,XCode 将 unicode 而不是引号信号放在 MyApp 名称上。 当运行测试失败并出现错误“No matches found for alert”。

我尝试将 unicode 更改为引用信号,但它也不起作用。

清楚吗? 有人有同样的问题吗?

[更新] 我对这段代码有两个问题

1- XCode 生成的带有 unicode 的消息存在错误

2- 点击系统显示的警报后测试失败

【问题讨论】:

【参考方案1】:

我找到了一种解决方法,以避免在关闭系统警报后崩溃:

我改变了这一行

[app.alerts[@"\U201cMyApp\U201d Would Like to Send You Notifications"].collectionViews.buttons[@"OK"] tap];

XCUIElement *alert = app.alerts[@"\U0000201cMyApp\U0000201d Would Like to Send You Notifications"].collectionViews.buttons[@"OK"];    
if ([alert exists]) 
    [alert tap];

我做了两个改动

unicode 上的四个 0000 以避免构建失败 在点击警报之前进行验证以避免测试失败

【讨论】:

如果显示警报,我仍然会崩溃。【参考方案2】:

您可以通过直接访问alert.element 并通过集合视图点击“确定”按钮来确认警报。

let app = XCUIApplication()
app.launch()
// trigger location permission dialog

app.alerts.element.collectionViews.buttons["Allow"].tap()

但是,Xcode 7(和 Xcode 7.1 Beta)会在成功解除警报后崩溃。我已经打开了bug report with Apple 并鼓励所有遇到问题的人复制它。

【讨论】:

现在我遇到了@Joe Masilotti 的问题。但我注意到它只发生在 iOS 启动的警报中。 正确,@Salmo。您可以忽略自己的 UIAlertViews 和 UIAlertControllers 而不会出现问题。 我刚刚找到了一个解决方法。我把它贴在下面。但我也会像你一样在 Apple 上开一期。【参考方案3】:

xcode生成的unicode字符格式不对,是xcode的bug。作为临时解决方法,您可以替换

[app.alerts[@"\U201cMyApp\U201d Would Like to Send You Notifications"].collectionViews.buttons[@"OK"] tap];

[app.alerts[@"\u201cMyApp\u201d Would Like to Send You Notifications"].collectionViews.buttons[@"OK"] tap];

\u

上的所有 \U

【讨论】:

如何使用 xCode 5 在新的 iOS 8 上安装应用程序?

】如何使用xCode5在新的iOS8上安装应用程序?【英文标题】:HowcanIinstallapplicationonthenewiOS8usingxCode5?【发布时间】:2014-06-0312:26:51【问题描述】:我以前用过iTunes。但现在它不起作用。应用程序的图标在iTunes上是灰色的。【问题讨... 查看详情

无法在新的自定义类 Xcode 11 中连接到 IBOutlet

】无法在新的自定义类Xcode11中连接到IBOutlet【英文标题】:CannotconnecttoIBOutletinanewcustomclassXcode11【发布时间】:2020-01-2302:44:53【问题描述】:我正在Xcode11中开发一个iOS项目,以创建一个将华氏温度转换为摄氏度的应用程序。我删... 查看详情

如何在新的 XCode 6 中同时生成 plist 和 ipa 以进行无线分发

】如何在新的XCode6中同时生成plist和ipa以进行无线分发【英文标题】:HowcanIgenerateplistandipatogetherforwirelessdistributioninnewXCode6【发布时间】:2014-11-2110:46:01【问题描述】:我已经在XCode5中多次这样做,并为我的应用程序的AdhocDistribut... 查看详情

无法在新的 Xcode 版本 13 上运行 React 本机 IOS 应用程序

】无法在新的Xcode版本13上运行React本机IOS应用程序【英文标题】:NotabletoRunReactnativeIOSApponnewXcodeversion13【发布时间】:2021-12-3106:11:47【问题描述】:我已升级Xcode版本13。尝试运行ios应用程序时开始出错,并且构建总是失败。如... 查看详情

如何在新的 iOS 7 和 Xcode 5 上使用旧 ios 版本构建我的应用程序

】如何在新的iOS7和Xcode5上使用旧ios版本构建我的应用程序【英文标题】:HowcanibuildmyappwitholdiosversiononnewiOS7andXcode5【发布时间】:2013-09-2605:41:22【问题描述】:我已经用ios7xcode5更新了我的mac...ui发生了变化...我可以用旧版本构建... 查看详情

Cocoapods 无法在新的 m1 mac Big Sur Xcode 上运行

】Cocoapods无法在新的m1macBigSurXcode上运行【英文标题】:Cocoapodswon\'tworkonnewm1macBigSurXcode【发布时间】:2021-03-3117:11:57【问题描述】:我正在摆脱我8岁的mac,并正在切换到新的m1macbookair,但我的旧项目都没有运行。我已经成功安装... 查看详情

无法在新的 ios8 中运行我的科尔多瓦应用程序

】无法在新的ios8中运行我的科尔多瓦应用程序【英文标题】:cannotrunmycordovaappinnewios8【发布时间】:2014-10-0206:00:55【问题描述】:您好,我是Cordova开发的新手。我在科尔多瓦开发了一个应用程序,这在我以前的ipad版本中运行良... 查看详情

xcode控制台打印unicode字符串转换为中文(代码片段)

在Xcode的控制台里直接打印一个数组或者字典,输出的都是一些Unicode的编码,不方便调试.  要想看到中文,则要去获取对应的key或者数组下标.得到具体某一个对象才能看到中文,给我们调试起来很不方便.   而现在... 查看详情

每当我尝试在新的 SceneKit 应用程序中替换库存文件时出现代码签名错误

】每当我尝试在新的SceneKit应用程序中替换库存文件时出现代码签名错误【英文标题】:CodeSigningErrorWheneverItryreplacingstockfilesinnewSceneKitapplication【发布时间】:2016-10-1607:01:14【问题描述】:所以Xcode8最近发布了,我仍然不确定究... 查看详情

使用 type 输出带有虚拟终端序列的 unicode 字符时,utf-8 Unicode 字符偶尔无法输出

】使用type输出带有虚拟终端序列的unicode字符时,utf-8Unicode字符偶尔无法输出【英文标题】:utf-8Unicodecharacterssporadicallyfailtooutputwhenusingtypetooutputunicodecharacterswithvirtualterminalsequences【发布时间】:2021-08-0422:28:02【问题描述】:通常... 查看详情

将字符串(带有 unicode 字符)添加到字典时添加额外的斜杠( \ )

】将字符串(带有unicode字符)添加到字典时添加额外的斜杠(\\\\)【英文标题】:Extraslash(\\)gettingaddedwhenstring(withunicodecharacter)addedtoadictionary将字符串(带有unicode字符)添加到字典时添加额外的斜杠(\\)【发布时间】:2020-11-1... 查看详情

vbscript此宏需要一个百分比交叉表(带有标题,在“最左边的列”处“总计”)并在新工作表上返回一个新的索引表,(代码片段)

查看详情

Java:带有 unicode 字符的 String.toCharArray()

】Java:带有unicode字符的String.toCharArray()【英文标题】:Java:String.toCharArray()withunicodecharacters【发布时间】:2011-11-3022:07:32【问题描述】:我知道char不能包含Unicode字符(如charc=\'\\u1023\')。那我该怎么办呢Strings="ABCDEFG\\u1023";char[]c=... 查看详情

“没有这样的模块:AVFAudio”xcode 构建在旧机器上失败,但在新机器上工作正常

...没有这样的模块:AVFAudio”xcode构建在旧机器上失败,但在新机器上工作正常【英文标题】:"Nosuchmodule:AVFAudio"xcodebuildfailsonoldermachinebutworksfineonnewer【发布时间】:2021-06-1521:04:31【问题描述】:我正在尝试在我的本地机器... 查看详情

带有 Unicode 字符的 MFC ODBC 存储过程参数

】带有Unicode字符的MFCODBC存储过程参数【英文标题】:MFCODBCStoredProcedureParameterswithUnicodeCharacters【发布时间】:2021-02-2513:33:12【问题描述】:存储过程是这样的CREATEPROCEDURE[dbo].[InsertItemsSPRoc]--Addtheparametersforthestoredprocedurehere@File_Name... 查看详情

如何在 Windows 下显示带有 Unicode 字符的消息/警告/错误?

...:我有一条包含Unicode字符的消息(或警告或错误)。(字符串有UTF-8编码。)x<-"\\u20AC\\ub124"#aeurosymbol,an 查看详情

如何在新的谷歌地图中找到 panoID?

...【问题讨论】:【参考方案1】:全景ID不再是22个字符的字符串。ID现在由多个用斜杠 查看详情

带有 Unicode 的 CString 格式返回错误的字符

】带有Unicode的CString格式返回错误的字符【英文标题】:CStringformatwithUnicodereturnswrongcharacter【发布时间】:2011-07-1123:19:37【问题描述】:我正在尝试使用以下代码格式化CString:constwchar_t*wch=L"μ";CStringstr;str.Format(_T("%c"),wch[0]);然而... 查看详情