我正在尝试XcodeUI测试。我刚刚录制了一个简单的测试并重播了它,但第一步失败了。代码是:XCUIApplication*app=[[XCUIApplicationalloc]init];XCUIElementQuery*scrollViewsQuery=app.scrollViews;[[scrollViewsQuery.otherElementscontainingType:XCUIElementTypeStaticTextidentifier:@"FirstPage"].elementtap];失败的行是最后一行,错误消息是“UI测试失败-未找到ScrollView的匹配项”为
即使只是运行默认的testExample类(没有代码),我的XCodeUI测试也无法使用机器人运行。相反,我收到一个错误:Testingfailed:TesttargetUIBotTestencounteredanerror(Earlyunexpectedexit,operationneverfinishedbootstrapping-norestartwillbeattempted)**TESTFAILED**在机器人之外,我的测试正在运行并通过,没有出现此类故障。我尝试实现的一种解决方案是利用系统警报处理程序在应用程序首次启动时处理通知权限警报,如下所示:XCUIApplicati
似乎在Xcode中有两种测试,一种是使用自动化测试在另一个进程中运行的应用程序的UI测试,另一种是单独测试小代码单元的单元测试。我想知道某处是否有中间立场...例如,如果我运行单元测试,则会在内存中启动一个我不使用的完整应用程序,因为我正在实例化测试用例类中测试所需的类。(我只知道它在那里,因为我在模拟器窗口中看到它,因为我的测试类有时会不小心使用通知中心与它通信。)不过,如果我可以使用此应用程序进行集成测试,那就太好了。它们类似于UI测试,但速度要快得多,而且我将能够访问实现。例如,我可以这样做以安装模拟,这样我就可以模拟远程端点的行为,并从用户的角度来看某些响应的影响。问题是:是否
如果我在模拟器上运行我的UITests,它们会运行得更快,每次交互都以某种方式更快。模拟器大约需要20秒,而真实设备大约需要2分钟。这就像我看到一只树懒在真实设备上点击按钮。一些信息:Xcode9.2设备:iPhone6plus(iOS10.1.1)和iPadAir(10.3.3)配备MacOSSierra10.12.6的MacBookPro(Retina,15英寸,2015年中)swift4模拟器:iPhone6(iOS11.2)我注意到运行iOS11.2.6的iPhone6plus运行UITests的速度明显更快。这不是性能问题,而是空转问题。有什么想法吗?
我正在使用XCUITest来测试出现键盘时的UI行为-例如,当出现键盘时内容是否正确向上移动。出于某种原因,iOS模拟器坚持定期禁用软件键盘。有时在模拟器重新启动时,但有时甚至只是在测试过程中切换文本字段时。有没有办法始终在模拟器中强制使用软件键盘?例如XCUIDevice上的命令行参数或属性?我在CI上运行这些测试,因此无法在模拟器中手动启用软件键盘。 最佳答案 我在Xcode中添加了一个脚本。它将默认的ConnectHardwareKeyboardNO写入~/Library/Preferences/com.apple.iphon
我有一个UIView的子类,假设它是classDemoView:UIView{},其中包含UILabel和UIButton。我需要对其进行分组并添加UIAccessibilityCustomAction,因此我覆盖了varaccessibilityElements:[Any]?并使用union来连接这两个元素。我还将“用户”字符串分配给accessibilityLabel。从用户的角度来看,这正常工作,VoiceOver读取Users,然后用户可以选择名为Edit的自定义操作。问题是我不知道如何从UITests触发这个自定义操作。我知道XCUIElement包含UICustomActi
所以我正在尝试让faSTLanescreenshot工作,这意味着让XcodeUITest工作......我构建了一个Ionic应用程序,它使用3条符号作为滑出按钮和那种对于webapps来说,一切都是微不足道的。但是,当我使用uITest记录时,它会误解按钮并最终像这样表示app.buttons[""].tap()当它尝试运行保存的UI命令时,它显然会因此而窒息并使测试崩溃……除了像这样使用其标签文本之外,还有其他方法来表示按钮吗?它似乎可以使用ID或NAME作为按钮标识符,但我还没有在任何地方找到解决这个问题的方法。 最佳答案
我有一个应用程序,其中页面控件用于指示多个屏幕。当用户点击页面控件时(例如:在当前所选页面的右侧),ScrollView将滚动到以下屏幕。它工作正常。我想为这个场景编写一个UI测试。我发现我无法点击特定的页面控件“点”来触发该操作。我可以检查的是页面控件是否存在以及当前选定的页面。另一个问题是,即使我能够这样做,我如何检查ScrollView是否已经滚动?我只能访问ScrollView的框架,而不能访问它的边界。我刚开始使用XcodeUITest,它让我很失望。我认为它现在会很强大(它由Xcode7引入,之前作为UIAutomation可用),但现在看来还没有。我将恢复到单元测试+手动
我正在运行带有UIImageWriteToSavedPhotosAlbum()的UITests案例,以将我的测试屏幕截图保存到相册:-(void)testExample{XCUIScreenshot*screenshot=[_appscreenshot];UIImageWriteToSavedPhotosAlbum(screenshot.image,nil,nil,nil);}但它因错误而崩溃:...XXXUITests-Runner[53905:8592232][access]Thisapphascrashedbecauseitattemptedtoaccessprivacy-sen
我已经尝试通过VisualStudioMobileCenter进行了一段时间来运行UI测试,但是我遇到了以下错误:准备测试...失败。错误:无法准备UI测试工件。返回出口代码20。我查看了移动中心CLIGITHUB页面,发现错误代码为1到63保留用于TestCloud。确实没有关于此错误的文档,因此我希望有人能够将我指向正确的方向。命令使用:mobile-centertestrunuitest--app"MyAppName"--devicesd5c95903--app-path"pathToApk"--test-series"master"--locale"en_US"--build-dir"