标签: ios-ui-automation

UIAutomation:点击警报视图上的取消按钮而不实际执行此操作

我在UIAutomation面临这个奇怪的问题.

我正在检查警报.在那,我试图记录警报标题和警报消息.我的代码是:

UIATarget.onAlert = function onAlert(alert) {
UIALogger.logMessage("alert Shown");
UIALogger.logMessage(frontApp.alert().name());
UIALogger.logMessage(frontApp.alert().staticTexts()[1].value());
}

var target = UIATarget.localTarget().frontMostApp().mainWindow();
target.scrollViews()[0].buttons()["saveB"].tap();
UIATarget.localTarget().delay(2);
Run Code Online (Sandbox Code Playgroud)

我没有点击警报中的取消按钮来解雇它.但是,它会自动被窃听.我不知道为什么.即使在logMessages中,我也看到了

target.frontMostApp().alert().cancelButton().tap()
Run Code Online (Sandbox Code Playgroud)

这条线自动执行.我的脚本文件中的任何地方都没有此行.这是iOS中的错误吗?

instruments ui-automation uialertview ios ios-ui-automation

4
推荐指数
1
解决办法
1565
查看次数

在XCTest中的UI测试中从TextView获取文本

我正在尝试使用XCode进行iOS UI测试.我的测试应用程序具有带可访问性标识的UITextView元素displayTextView.

我尝试了简单的测试,点击这个元素,键入一些文本,然后检查结果如下:

XCUIElement *textView = app.textViews[@"displayTextView"];
[textView tap];
[textView typeText:@"9.9"];
Run Code Online (Sandbox Code Playgroud)

有用.但后来我无法从文本视图中获取键入的文本.我尝试通过以下方式做到这一点:

XCTAssertEqual([textView.accessibilityValue isEqualToString:@"9.9"]);
Run Code Online (Sandbox Code Playgroud)

但它似乎不正确,因为textView.accessibilityValue为null.获取打字文本的方法是什么?

objective-c ios ios-ui-automation xcode-ui-testing

4
推荐指数
1
解决办法
3390
查看次数

iOS - UI Automation通过辅助功能标签获取文本字段?

所以在我的nib文件中我启用了辅助功能并将文本字段的可访问性标签设置为"txt"我试图根据辅助功能名称找到此文本并更改其文本.

var target = UIATarget.localTarget();
var application = target.frontMostApp(); 
var mainWindow = application.mainWindow();
mainWindow.logElementTree();

// This works
var textField = mainWindow.textFields()[0];

//this doesn't work
var textField = mainWindow.textFields()["txt"];

textField.setValue("Hello");
Run Code Online (Sandbox Code Playgroud)

我做错了吗?如何根据辅助功能标签找到标签?

编辑:

我也对其他解决方案持开放态度,我试图避免根据索引获取文本字段

iphone accessibility ios ios-ui-automation

3
推荐指数
1
解决办法
9295
查看次数

UIAutomation iOS调试

我有一个应用程序,我试图使用鸟枪方法自动调试(随机触摸应用程序很长一段时间).我目前正在使用UIAutomation和这个脚本:

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();

target.delay(2);

window.tapWithOptions( { x:160.0, y:370.0 } );

target.delay(5);

for(i=0;i<=100000;i++)
{
    xPoint = Math.floor(Math.random()*319+1)
    yPoint = Math.floor(Math.random()*479+1)
    window.tapWithOptions( { x:xPoint, y:yPoint } );
}
Run Code Online (Sandbox Code Playgroud)

这很有效,但不幸的是,当它最终崩溃时我没有调试信息让我知道为什么,无论如何我可以将XCode调试器绑定到这个自动化吗?

ios ios-ui-automation

3
推荐指数
1
解决办法
1885
查看次数

从命令行运行UI Automation时出错

我认为这是第一次 - 我收到一个错误,当我在Google上搜索它时,我收到的异常常数没有返回任何内容.

基本上我正试图从我的iOS应用程序上运行UI自动化,并收到以下错误消息:

2013-02-22 13:12:17.820 ScriptAgent [16626:2e07] + [UIAXElement initialize]:UIAutomation从未收到过kAXAccessibilityLoaded.等了20.02秒.

2013-02-22 13:12:17.826 ScriptAgent [16626:2e07] - [UIAXElement_0xad343c initialize],/ SourceCache/UIAutomation_Sim/UIAutomation-271/Framework/UIAXElement.m第165行,kAXErrorServerNotFound中出现意外错误

2013-02-22 13:12:17.828 ScriptAgent [16626:2e07]由于未捕获的异常'kUIAExeceptionAccessibilityError'而终止应用程序,原因:'UIAXElement_0xad343c初始化中出现意外错误,/ SourceCache/UIAutomation_Sim/UIAutomation-271/Framework/UIAXElement .m第165行,kAXErrorServerNotFound'

第一次抛出调用堆栈:(0x491012 0x1b78e7e 0x490deb 0xa8a55b 0x1b797cf 0x1b80a0d 0x1b77aeb 0x1b77e22 0x1b8a0e1 0xaa2605 0xa847 0x5d8d 0x866d 0x2925)libc ++ abi.dylib:terminate调用抛出异常

2013-02-22 13:12:18.264仪器[16585:2227]自动化仪器在尝试运行脚本时遇到异常.UIAScriptAgentSignaledException

2013-02-22 19:12:18 +0000失败:尝试运行脚本时发生错误.仪器跟踪完成(时间:41.326542s;输出:/Users/newmanp/Work/iOS/CMAiPad/CMA.Mobile/UIScripts/instrumentscli3.trace)

我搜索kAXAccessibilityLoaded或kAXErrorServerNotFound并且根本没有点击.这是我的命令行调用的样子:

instruments -t~/Work/iOS/Platforms/iPhoneOS.platform // Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate/Users/newmanp/Library/Application\Support/iPhone\Simulator/6.0/Applications/B60B9BD7-357D-49AA-9E6F-986929C5D151/CMA.app -e UIASCRIPT ./cmaAutomationTests.js -e UIARESULTSPATH"."

任何关于我可能做错的建议都非常感谢.

ui-automation ios ios-ui-automation

3
推荐指数
1
解决办法
3451
查看次数

如何在使用Core Graphics绘制的图像上设置辅助功能标签?

我试图围绕一些核心图形逻辑编写UIAutomation测试.目前我们正在使用核心图形来绘制图像.我试图设置图像上的辅助标签/标识符/值,这样我可以通过UIAutomation测试验证它的存在,但无论我做什么,我不是在获得对DOM的辅助功能标签/标识符/值我的考试.以下是我尝试过的事情:

直接在图像上设置.

UIImage *uiImage = [UIImage imageWithData:bfCaseStudy.image];
uiImage.isAccessibilityElement = YES;
uiImage.accessibilityLabel = bfCaseStudy.name;
uiImage.accessibilityValue = bfCaseStudy.name;
uiImage.accessibilityIdentifier = bfCaseStudy.name;

CGContextDrawImage(context, [self rectForAttr:bfCaseStudy], uiImage.CGImage);
Run Code Online (Sandbox Code Playgroud)

在核心图像上设置

UIImage *uiImage = [UIImage imageWithData:bfCaseStudy.image];
uiImage.CIImage.isAccessibilityElement = YES;
uiImage.CIImage.accessibilityLabel = bfCaseStudy.name;
uiImage.CIImage.accessibilityValue = bfCaseStudy.name;

CGContextDrawImage(context, [self rectForAttr:bfCaseStudy], uiImage.CGImage);
Run Code Online (Sandbox Code Playgroud)

无论哪种方式都会产生相同的结果.这是试图访问信息的UIAutomation代码.

UIALogger.logDebug(bookTwoHelper.mainWindow.images()[5].label());
UIALogger.logDebug(bookTwoHelper.mainWindow.images()[5].name());
UIALogger.logDebug(bookTwoHelper.mainWindow.images()[5].value());

Debug: (2013-02-25 16:06:33 +0000) - (null)
Debug: (2013-02-25 16:06:33 +0000) - (null)
Debug: (2013-02-25 16:06:33 +0000) - (null)
Run Code Online (Sandbox Code Playgroud)

这是DOM的相关部分

UIAImage "(null)" {{0, 149}, {316, 55}}
Run Code Online (Sandbox Code Playgroud)

有没有办法在使用核心图形绘制的图像上设置辅助功能标签/标识符/值?

xcode objective-c ios ios-ui-automation

3
推荐指数
1
解决办法
4632
查看次数

iOS/UI自动化:UIAActionSheet无法使用按钮进行操作

我的问题与XCode的Instruments工具中的UI Automation模板有关.UI Automation如何支持UIActionSheet测试?我知道有一个UIAActionSheet元素,我能够在我的应用程序中获取它.但我不知道如何使用操作表中的按钮进行操作.UI Automation不为这些按钮提供任何元素.UI自动化文档也没有关于此事的任何信息.请参阅以下链接.看起来这个控件不使用UIButton类用于按钮并以某种特定方式呈现它们.你能告诉我一些如何从UIAActionSheet到达按钮的线索吗?谢谢.

http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Reference/UIAActionSheetClassReference/UIAActionSheet/UIAActionSheet.html#//apple_ref/doc/uid/TP40009895

instruments ui-automation ios ios-ui-automation

2
推荐指数
2
解决办法
5233
查看次数

Xcode:UI自动化:waitForValid()

有一个waitForInvalid()但是waitForValid()函数怎么样?出于某种原因,在许多情况下,push/popTimeout对我不起作用.苹果?

ui-automation ios ios-ui-automation

2
推荐指数
1
解决办法
7103
查看次数

iOS UIAutomation - 读取navigationBar的标题

如何使用UIAutomation javascript检查我的应用程序中na​​vigationBar标题的值?我尝试过各种各样的事情,比如

target.frontMostApp()的导航栏().标题

target.frontMostApp()的导航栏().名称

target.frontMostApp().的导航栏().值

还有其他一些,但没有一个能奏效.

uinavigationbar ios-ui-automation uiactivityviewcontroller

2
推荐指数
1
解决办法
2410
查看次数

有没有办法同时使用仪器启动自动化和分配tracetemplate?

我正在尝试使用自动化仪器和分配工具来分析我们的iOS应用程序的内存使用情况.我们的想法是使用自动化来驱动用例,而分配工具则在后台记录一些内存数据.我想知道是否可以同时使用仪器启动自动化和分配tracetemplate?这样我就可以在自动化完成后检查Allocations记录的数据.

任何指针都会有所帮助.

memory instruments ios ios-ui-automation

2
推荐指数
1
解决办法
450
查看次数