如何使用iOS上的Instruments验证表格视图中标签的名称?

如何使用iOS上的Instruments验证表格视图中标签的名称?,第1张

概述我正在使用 Xcode“Instruments”工具为iOS应用程序构建自动化,我需要验证我在我的应用程序中创建的条目的标签是否正确. 由于某种原因,下面列出的代码不会导致稳定的通过或失败.相反,当它运行时,我在日志中得到一个“问题”警告,并且测试退出而没有明确关闭. 我想更改我的测试,以便检查我知道正在创建的标签名称,因为我可以在自动化运行后使用AccessibilityViewer查看它. 如 我正在使用 Xcode“Instruments”工具为iOS应用程序构建自动化,我需要验证我在我的应用程序中创建的条目的标签是否正确.

由于某种原因,下面列出的代码不会导致稳定的通过或失败.相反,当它运行时,我在日志中得到一个“问题”警告,并且测试退出而没有明确关闭.

我想更改我的测试,以便检查我知道正在创建的标签名称,因为我可以在自动化运行后使用AccessibilityVIEwer查看它.

如果标签是正确的,那么我想将测试记录为通过.

我已经使用了UIATarget.localTarget().logElementTree()来映射我的元素树,并且在创建条目后我使用了AccessibilityInspector来验证我的标签名称.麻烦的是,我似乎无法获得验证这个正确的语法.

我的辅助功能检查器已验证标签名称为:MyDogs!它具有静态文本的特征,并给出了{{114,0},{166,480}}的框架

通过查看元素树 – 我希望我可以粘贴在这里,看起来像沿着这条路径找到标签:

\Target-+--\Application---+----\Window-----+------\tableVIEw-------+--------\tableCell: name:MyDogs! rect:{0,40},{480,166}}---------|UIAStaticText: name:MyDogs! value:MyDogs! rect:{{0,166}}---------|UIAbutton: name:story List share rect:{{439,41},{33,28}}

谁能告诉我如何验证这个标签?

我当前的代码看起来像这样(但不检查标签 – 因为我不知道如何):

var testname = "LoginCreateEntry";//Start test loggingUIALogger.logStart(testname);//This is supposed to target the entry that my automation has created.//The flow goes,run the automation that creates the entry,then verify that the entry//got created as expected and is visible to the user in the iPhone interface.    var myEntry = target.frontMostApp().mainWindow().scrollVIEws().staticTexts()["My Dogs!"].value();     var entryname = "My Dogs!";//Do a bunch of UI automation here to create my entry,which results in the entry//appearing in the mainWindow with the label: My Dogs!//If myEntry evaluates to true,then call this test a pass.if (myEntry === entryname) {    UIALogger.logMessage("My entry was created!");    //Mark the test as a PASS    UIALogger.logPass(testname);}else {    UIALogger.logMessage("My entry was not created!");    //Mark the test as a FAIL    UIALogger.logFail(testname);     }//End test

任何反馈或帮助将非常感谢!!

——————————— UPDATE —————- ———————-

感谢你的帮助!我实际上得到了标题的价值,并将在下面显示我的解决方案.但是无论我做什么,我都无法使通过/失败记录功能正常工作 – 问题也是encountered by others.我一直在激动不已

问题:脚本结束时没有说明关闭此测试

我测试结束时的消息.我开始相信这是仪器的一个错误.

这是我更新的测试:

var target = UIATarget.localTarget();var app = UIATarget.localTarget().frontMostApp();var testname = "LoginCreateEntry";//Start test loggingUIALogger.logStart( testname );//Do lots of gui automation stuff here to create the entry which will appear in my app interface.//I want to verify that the Title I gave the entry matches what appears in the app interfacevar window = app.mainWindow();var tableVIEw = window.tableVIEws()[0];var tableGroup = tableVIEw.groups()[0];var entryname = "My Dogs!";var myEntry = tableVIEw.cells()[0].name(); //<-- This is what I needed!!!UIALogger.logMessage("My Story Title: " + myEntry); //Print out entry name in logif (myEntry === entryname) {        UIALogger.logMessage("My entry was created!");    //Mark the test as a PASS    UIALogger.logPass (testname);} else {    UIALogger.logMessage("My entry was not created!");    //Mark the test as a FAIL    UIALogger.loFails (testname);     }//End test
解决方法 我建议使用 tuneup_js.使用该库,您可以轻松创建测试用例并检查标签是否存在且与My Dogs相同

你可以像这样使用它

test("LoginCreateEntry",function(target,app){    //Create Entry    //....    var myEntry = target.frontMostApp().mainWindow().scrollVIEws().staticTexts()["My Dogs!"].name();    //Check is Label is equal to My Dogs    //Test "LoginCreateEntry" will fail if myEntry is not equal to My Dogs    assertEquals(myEntry,"My Dogs");});

附:你应该使用.name()而不是.value()来获取标签的名称

总结

以上是内存溢出为你收集整理的如何使用iOS上的Instruments验证表格视图中标签的名称?全部内容,希望文章能够帮你解决如何使用iOS上的Instruments验证表格视图中标签的名称?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存