Tag: ios ui automation

iOS应用程序在创build新的appium会话时重置

我正在执行以下步骤 设置function并启动ABC应用程序。 通过提供应用path capabilities.setCapability(“app”,“/Users/changdeojadhav/Library/Developer/Xcode/DerivedData/ABC/Build/Products/Debug-iphonesimulator/ABC.app”); capabilities.setCapability( “bundleId”, “com.abc.ABC-演示”); 执行一些操作 通过driver.quit()退出驱动程序 设置Xyz应用程序的function。 并启动XYZ应用程序 执行一些步骤 通过driver.quit()退出驱动程序 重新启动ABC应用,如步骤#1所述。 预计“应用程序ABC应保持它的状态”,但ABC被重置。 我用–no-reset参数启动了appium。 任何关于我在这里失踪的想法谢谢

Xcode:UI自动化:waitForValid()

有一个waitForInvalid(),但是waitForValid()函数呢? 出于某种原因,在很多情况下,push / popTimeout不适用于我。 苹果?

自动化设置应用程序,iPhone

我正在尝试在iPhone上使用UI Automation连接到任何给定的Wi-Finetworking。 我想自动设置应用程序。 它应该自动: 打开“设置”应用 打开Wi-Fi; 通过提供SSID和WPA连接到给定的networking。 我的问题是: 使用UI自动化可以自动化任何内置的应用程序吗? Apple / iOS安全模型是否阻止了对内置应用程序的访问? 如果有可能,如何实现这一目标?

在设备上使用UIAutomation进行录制时,会在“正在启动Capture …”上挂起。 在模拟器上正常工作

有没有其他人有这个问题? 我是UIAutomation的新手。 我正在使用Xcode4.5,试图在运行ios6的iPad 3上录制命令。 当我点击loggingbutton,它只是挂在'开始捕捉…'。 我最初尝试在模拟器上运行时遇到了这个问题,并且能够使用它来解决这个问题。 sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer。 似乎无法让我的设备上工作。 可访问性设置是否需要以某种方式设置? 我打开了多任务。 当我尝试运行脚本时,没有任何反应。 没有错误或任何东西。 完全难倒了。

iOS UI自动化元素找不到子元素

我刚刚开始使用UI自动化为我的iOS应用程序,并已遇到麻烦。 我无法添加屏幕截图,所以我会尽我所能来描述我的情况。 我正在为iOS 6.0构build,并使用故事板。 该应用程序启动到导航控制器的屏幕。 根视图控制器包含一个主视图,它具有1个UIView子视图,占据屏幕底部的60%,以及位于该子视图之上的分段控件。 我能够configuration主视图(标签“mainview”)的可访问性。 那么我可以在我的testing中find这个元素没有问题。 但是,我现在无法find分段控制器。 所以我决定从我的“mainview”元素中注销“elements()”和“segementedControls()”的长度,每个数组的长度都是0.所以当testing运行我的应用程序时,它说没有子我的主要观点元素。 另外需要注意的是,我无法在分段控件的故事板编辑器的身份检查器中find任何可访问性部分。 然而,我暂时在我的主视图中添加了一个button,并使用可访问标签对其进行了configuration,只是为了testing在运行我的testing时,元素()或button()调用是否随后会显示主视图的元素,但是这些数组仍然是返回为空,即使button。 这是我的脚本: var target = UIATarget.localTarget(); var app = target.frontMostApp(); function selectListView() { var testName = "selectListView"; UIALogger.logStart(testName); var view = app.mainWindow().elements()["mainview"]; if (!view.isValid()) { UIALogger.logFail("Could not locate main view"); } UIALogger.logMessage("Number of elements for sub element: " + view.elements().length); var segmentedControl = view.segmentedControls()[0]; […]

带代码覆盖率的UIAutomation

我目前正在jenkins上自动化我们的iOStesting。 到目前为止,我没有运行unit testing的问题,将OCUnit转换成JUnit,并生成Cobertura格式的代码覆盖(大量的search,但没有困难)。 但是,当创buildUIAutomation作业,我卡住了。 testing正在成功运行(从命令行调用instruments )。 生成junit报告是棘手的,但可能的。 问题是,运行UIAutomation时,不会生成代码覆盖率文件。 有没有可能产生它们? 如果没有,请解释为什么? 我到目前为止所尝试的是: 将UIAutomation附加到iOS模拟器上已经运行的应用程序。 这似乎不可能。 正在运行的应用程序被杀死的仪器和新的实例重新启动或一个神秘的错误消息打印。 使用osascript和UIAHost. performTaskWithPathArgumentsTimeout的组合,在js脚本的结尾退出模拟器UIAHost. performTaskWithPathArgumentsTimeout UIAHost. performTaskWithPathArgumentsTimeout 。 应用程序优雅地结束,但没有产生覆盖。 编辑使用不同的框架进行了一些testing之后,我意识到退出模拟器是不够的,你必须明确地从应用程序调用exit() 。 使用UI自动化,这是有点棘手,但你可以声明一个应用程序的scheme,例如my-app://exit并通过UIAHost.performTaskWithPathArgumentsTimeout使用UIAHost.performTaskWithPathArgumentsTimeout调用它。 将检查这是否足以生成文件。

setAccessibilityLabel和accessibilityIdentifier在ios中有什么区别?

我一直在通过我们的代码库,并在我们所有的button和文本字段上设置accessibilityIdentifier属性,以便我可以使用UIAutomation访问它们。 在这样做的时候,我遇到了一些已经存在的代码。 [_goodButton setAccessibilityLabel:@"off"]; 我找不到有关这两种方法之间的区别的文档。 看起来他们做同样的事情。 有人知道吗? 我觉得这个标签也被设置为“off”。

仪器自动化工具:脚本结束没有明确地closures此testing

我今天正在玩乐器上的自动化工具,但在编写testing工作时遇到了问题。 以下示例将以问题退出Issue: Script ended without explicting closing this test 。 是的,这个消息确实说明了 。 我认为这是Xcode最近版本中引入的一个错字。 这是我第一次尝试使用这个工具。 将cellCount设置为6会导致Pass,但是任何东西都会给我“脚本结束”消息。 我在做错了吗?还是自动化工具有一个错误。 UIALogger.logStart("Start Simple Test"); var target = UIATarget.localTarget(); var cellCount = 7; UIALogger.logMessage("cell count: " + cellCount); if (cellCount != 6) { UIALogger.logFail("Failed"); } UIALogger.logPass("Passed");

我们可以在iPhone模拟器上使用UI自动化工具吗?

我一直在使用新的UI自动化工具与仪器和iPhone SDK 4.0,但到目前为止,我还没有能够得到它在iPhone模拟器下运行。 我已经尝试设置目标到每个可能的位置 – 我的生成文件夹,在〜/库/应用程序支持/ iPhone模拟器等应用程序文件夹,但我尝试运行它时收到错误消息: – [UIATarget_0x5a1e3b0 frontMostApp] /SourceCache/UIAutomation_Sim/UIAutomation-37/Framework/UIATargetElements.m行437中的意外错误, 有没有人得到这个工作?

为什么在UI Automation工具中看到“尝试运行脚本时发生错误”?

当我尝试在iOS 5设备上运行UI自动化脚本时,出现以下错误: “尝试运行脚本时发生错误。” 相同的脚本在模拟器或iOS 4.3.3设备上运行完美。 我怎么解决这个问题?