我可以在界面生成器中设置可访问性标识符吗?Xcode4.2
我只能在接口构建器中设置可访问性标签,但是在UI自动化中,我需要可访问性标识符来获取UI元素. 有什么方法? 解决方案 在Xcode 7.1(ios 9.0)中,您可以尽可能简单.请找到附加的图像. 您可以简单地将其访问为视图. 其他解决方案 可以通过使用" Indify Inspertity Inspector"选项卡的"用户定义的运行时属性"设置可访问性Indentifier: 关键路径:可访问性识别器 类型:字符串 值:选择的可访问性识别符文本 例如.设置滚动视图以具有可访问性ID" scrollview": 的图像 注意:这只能用于具有可访问性的属性属性的项目,这意味着它们从Uiview继承.另外,"关键路径"中的错别字可能会在加载项目时会导致例外,我认为不会给出编译警告/错误. 其他解决方案 根据此页面 uiautomation将使用可访问性标签,因此您可以暂时使用它.但是,这可能不是最好的练习,因为如果用户使用配音,
0 2024-01-09
编程技术问答社区
XCTestCase在setUp类方法中没有启动应用程序
我正在使用Xcode 8和Xctestcase.我创建了一个类设置函数,要在所有测试之前运行一次,并且在每个测试案例之前进行了其他设置. 我希望在所有测试用例之前启动一次应用程序.如果我在类设置中使用启动,则永远不会执行.如果我在每个测试之前使用设置中的启动,它确实会启动测试. 它打印: 在类设置中 结束类设置 在设置中 在测试方法中 但是该应用程序永远不会启动.如果我在第二个设置中启动该应用程序的线路,它将启动. 如何在测试类中的所有测试之前启动一次应用程序? 解决方案 我面临同样的问题,并以以下方式解决了它 class MyTestCase: XCTestCase { static var app: XCUIApplication? override func setUp() { super.setUp() if MyTestCase.app == nil {
0 2023-12-20
编程技术问答社区
swift xcui字符串断言失败
我正在使用Xcode 8.3.3并编写XCUI测试. 我有以下内容: let address = XCUIApplication().buttons["URL"].value as! String 在调试器中查看,我可以看到值是: 如果我设置 expectedURL = "\u{e2}auth.int....net"然后返回: 如果我设置 expectedURL = "auth.int....net"然后返回: 如何使测试断言找到两个字符串相等? 尝试了以下内容,但不会替换" \ u {e2}": let address = value.components(separatedBy: ",").first!.replacingOccurrences(of: "\u{e2}", with: "") 以及(但它不替换" \ u {e2}"): let range = Range(uncheckedBounds:
2 2023-12-20
编程技术问答社区
XCUIApplication替换了UIATarget captureScreenWithName()的功能。
我们正在尝试从uiautomation迁移到Xcuitests,并确实使用CaptureCreenWithName()API迁移到编程中生成屏幕屏幕. Xcuitest中的替代品是什么? (我知道在错误的情况下会自动进行屏幕截图,但是我们有一个特殊的测试,该测试将永远在循环中运行并评估QA单击,通过网络点击命令,类似于Appium-Xcuitest-Driver https://github.com/appium/appium/appium-xcuitest-driver ) 我需要像Appium一样为了获得屏幕截图API而删除私人标头(xcaxclient_ios.h)? 编辑 我使用了实际的代码行作为接受的解决方案 /master/snapshot/lib/assets/snapshothelper.swift ,这就是iOS XCUIDevice.sharedDevice().orientation = .Unknown 或OBJC [XCUIDevice
2 2023-12-20
编程技术问答社区
在横向模式下无法点选(x,y)坐标
在xcode 8/swift 3中,使用坐标(使用normalizedOffset:cgvector)函数与Xcuielement交互似乎仅在肖像模式下起作用. 为了测试此功能,我创建了一个单个屏幕项目,其中一个按钮以视图为中心.然后,我进行了以下UI测试: func testExample() { XCUIDevice.shared().orientation = .portrait let window = XCUIApplication().windows.element(boundBy: 0) let centerPoint = window.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)) centerPoint.tap() } 这成功地敲打了按钮.但是,如果我在Landscapeleft或Landscaperight中进行相同的测试,则该按钮不会被轻
2 2023-12-20
编程技术问答社区
在Xcode UI测试期间检查电子邮件?
更新:UI 用xcode进行测试? Can I programmatically access my email from an ios UI自动化脚本? 我想访问我的iPhone应用电子邮件将电子邮件发送到我的电子邮件帐户的注册代码. 解决方案 使用NSURLSession从测试方法中提出HTTP请求.请参阅: https://stackoverflow.com/a/a/3570828282/242933 其他解决方案 如果您可以在仍在应用程序中的设备/模拟器中接收代码的方法,则可以编写ia ia uia脚本的脚本来执行此操作. 但是,使用iOS UIA工具的当前状态,您无法访问应用程序以外的任何内容.因此,基本上您无法启动应用程序,然后启动另一个应用程序(例如Safari)访问mail.google.com blah blah blah. 最接近将应用程序留在iOS UIA中的东西是使用函数调用将您的应用发送到背景x x秒.
6 2023-12-20
编程技术问答社区
在Xcode 7 UI Automation中模拟按下Home键
我已经降低了: XCUIDevice.pressButton(noideawhatgoeshere) 我已经尝试过Xcuidevicebuttonhome,家庭,家庭,1 如何模拟iOS上的Xcode中的"主"按钮? 解决方案 您需要先获取设备实例.因此,要模拟按下主按钮: XCUIDevice.sharedDevice().pressButton(XCUIDeviceButton.Home) 应该工作(在物理设备上对我有用) 谢谢! mazen Swift 5版本: XCUIDevice.shared.press(XCUIDevice.Button.home) 此外,已验证它在模拟器中工作,至少在Xcode 11.2.1中进行了模拟的" iPad Pro(9.7英寸)"运行iPados 13.2.2. 其他解决方案 swift 4 : XCUIDevice.shared.press(.home) 其他解决方
2 2023-12-20
编程技术问答社区
iOS uiautomator应用程序名称
我正在尝试使用Xcode Instruments启动和测试iOS应用程序. 但是我没有测试的每个应用程序名称. 例如,我知道: settings == prexences.app safari == mobilesafari.app 什么是应用程序的名称日历,邮件,照片,消息, camera ,...? 解决方案 我能够找到答案,希望它也对他人有所帮助: 日历== mobilecal.App mail == mobilemail.app 照片== Mobileslideshow.app 消息== Mobilesms.App camera == camera.app
0 2023-12-20
编程技术问答社区
使用UIAutomation禁用iOS模拟器的硬件键盘
我正在使用uiautomation在iOS模拟器中进行一些自动测试. 在Xcode 6中,iOS模拟器的键盘行为更改与真实设备相似,现在有一个菜单项可以连接/断开Mac的键盘与模拟器:硬件>键盘>连接硬件键盘. 我不介意这一点,但是当连接Mac的键盘时会发生什么,即模拟器将不再显示软件键盘.当您使用uiautomation运行测试脚本时,UIATarget.localTarget().frontMostApp().keyboard().typeString("myString");之类的调用将失败,因为键盘不会出现,即使您将文本字段制作了第一响应者. 这很烦人,因为如果我在模拟器中进行任何手动测试,我将需要记住在进行任何uiautomation测试之前禁用硬件键盘,否则它们都会失败. 从UIAUTOMATION JS脚本中,有什么方法可以检查硬件键盘设置并禁用它们吗?或者,在执行UIAUTomation脚本之前,从命令行执行此操作的任何方法? 解决方案 如
6 2023-12-20
编程技术问答社区
com.apple.CoreSimulator.CoreSimulatorService是做什么的?
自升级为Xcode6以来,我们的模拟器上的iOS自动化测试已经经历了灾难. 我们可以观察到视图切换放慢速度,uiautomation也感觉到了它,并且经常返回一个空的或不完全更新的应用主窗口,您可以想象稳定性. 部分原因是我们的VM慢,但我们仍然需要找到解决方法的方法. 然后,我注意到 coreSimulatorService 流程在启动和模拟器关闭之间保持活力.所以我杀死了它,看看会发生什么变化: killall -9 com.apple.CoreSimulator.CoreSimulatorService 被杀死并重新启动后,模拟器的性能似乎好多了,至少我不再看到随机失败了(希望如此).我想这有点清理. 所以我希望更好地了解coreSimulatorService的何种功能? 另外,当苹果发布新事物时(原谅我的无知),我对在哪里找到文件感到困惑.例如,我在iOS开发人员库中没有找到任何文档,提到 simctl xcode release注释.
2 2023-12-20
编程技术问答社区
UIAutomation#39;s dragInsideWithOptions对iOS7模拟器没有影响
由于我使用Xcode 5和新的iOS 7模拟器来使用仪器进行UIAUTOMATION测试,因此dragInsideWithOptions和dragFromToForDuration函数根本没有效果. (相同的测试与iOS 6.1模拟器相同.)这是已知的错误,还是此功能的可用性发生了变化?是否有人可以在iPad上使用iOS 7模拟器使用此功能? 解决方案 在这里同一问题.除了draginsidewithoptions不起作用外,DragFromTofortration和Flickfromto在Xcode 5中与iOS 7中的工作无法正常工作.我一直在搜索并等待解决方案.在此之前,不可能刷卡. 其他解决方案 这有点旧,但似乎dragInsideWithOptions仍然不起作用. 对于UIScrollView可以使用这些方法: scrollUp scrollDown scrollLeft scrollRight 来源: ex: UIATarget.loc
0 2023-12-20
编程技术问答社区
当在设备上使用UIAutomation进行录制时,它在'开始捕获时挂起...' 。在模拟器上工作正常
其他人有这个问题吗? 我是新来的.我正在使用Xcode4.5,试图在运行ios6的iPad 3上记录命令.当我单击记录按钮时,它只是挂在"开始捕获..."上.最初,我在尝试在模拟器上运行并能够使用它来解决它时遇到了这个问题. sudo xcode -select -switch/applications/xcode.app/contents/developer.似乎无法在我的设备上使用它.是否需要以某种方式设置可访问性设置?我已经打开了多任务. 当我尝试运行脚本时,什么也不会发生.没有任何错误或其他任何内容.完全被困. 解决方案 确保使用开发配置文件而不是临时配置文件进行编译.
0 2023-12-20
编程技术问答社区
当用UIAutomation通过Instruments操作iphone时,什么是UIATargetHasGoneAWOLException?
我正在使用uiautomation,通过Xcode的仪器在iPhone上做某事,并获得了一个奇怪的例外: uiatargethasgoneawolexception. 有人知道这个例外是什么意思? 解决方案 我发现,当存在某些未知条件并且iPhone连接到计算机时,就会发生这种情况.断开iPhone的连接将解决问题. 不幸的是,我不知道"某些未知条件"是什么,因为连接的iPhone设备不会自动导致此例外.但是我确实看到断开iPhone足以防止它. 其他解决方案 我找到 基本上,.app内的生成Info.plist文件缺少某些属性.我能够将以下内容添加到我的Info.plist>中,并且可以按预期工作: CFBundleSupportedPlatforms iPhoneSimulator DTPlatf
4 2023-12-19
编程技术问答社区
如何让UIAutomation、模拟器和Xcode调试器同时运行?
任何人都可以将我指向有关如何制作仪器运行uiautomation脚本的文档,并在模拟器中运行调试器的iPhone应用程序? 约束: 我只有iPhone 3G硬件可以测试并通过UIAUTomation对设备进行调试,这是无法可靠地工作的. 通常,测试脚本只是为了确保所有内容都通过,但是现在存在一个奇怪的错误,只有在运行uiautomation脚本时才会触发(这是一件好事).该错误在手动操作中无法重复. 无论如何,将仪器uiautomation附加到模拟器中已经运行的过程中似乎都没有.没有选择. 启动仪器uiautomation直接导致其从调试器开始. 我假设可以在仪器中配置一些命令行魔法来编辑活动目标(环境变量,参数,工作目录)来实现这一目标,但是我还没有找到魔术段. 谢谢 尼尔 解决方案 这也使我陷入困境一段时间 - 尤其是因为选择了自动化仪器时,仪器申请明确表示Current instrumentation disallows attach.关键是要意识到,在
10 2023-12-19
编程技术问答社区
import tuneup.js文件未找到
使用Xcode IOS Instruments UI自动化Tuneup.js JavaScript库 . 我面临的挑战是了解我发射的仪器当前工作的目的. 我无法为Tuneup/Tuneup.js脚本提供相对的路径.相对路径的目的地当然" Tuneup/Tuneup.js".但是起点是什么? 这是代码: // This works: #import "/Users/mikes/Documents/Full/Path/To/File/Tests/tuneup/tuneup.js" // These do not work: //#import "tuneup/tuneup.js" //#import "Tests/tuneup/tuneup.js" // // See https://github.com/alexvollmer/tuneup_js // test("First Screen", function(target, app) { v
2 2023-12-18
编程技术问答社区
UI自动化工具可以从命令行运行吗?
有没有办法通过端子打开UIAutomation仪器? 可以编写AppleScript打开Apple的UIAutomation工具并加载要测试的应用程序吗? 您可以告诉我,通过脚本或通过命令行我们可以打开UIAutomation并选择要测试的应用程序以及选择测试脚本吗? 解决方案 instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/\ PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \ -e UIASCRIPT \ -e UIARESULTSPATH xcode> = 4.5 instruments
6 2023-12-18
编程技术问答社区
用EXCEL实现UI自动化
我是UI自动化的新手.在我当前的组织中,我的任务是使用GUI(图形用户界面)屏幕读取来制作自动化工具,但是由于屏幕分辨率的差异,它并不能与其他同事的机器完美运行. 我看着有人可以将我带到UI自动化上的资源吗?我想知道我可以在哪里学习,阅读它以及如何使用Excel实施. 预先感谢您,如果有人能帮助我,我真的很感谢. 解决方案 Microsoft的UIAUTomation非常强大,并且与Windows 7、8、10的应用程序也很好地配合了应用程序的应用程序(32和64位),并且可以方便地用于在没有昂贵工具的情况下进行一些不错的GUI自动化. 确保在VBA参考中您有Uiautomationcore.dll引用(有时在某些计算机上您必须将其复制到您的文档文件夹中) 下面您可以看到2个基本示例,但是由于MS自动化是所有例程的巨大库,因此您可以在MSDN上阅读很多文档,以备完整文档. 我在自动和VBA中使用MS UIA例程 为了自动在这里共享 对于VBA,我没
6 2023-11-15
编程技术问答社区
如何使用UIAutomation在网页视图中向文本字段输入文本
我的iOS应用程序具有带有用户名和密码文本字段的登录页面.这些文本字段在Web视图中.我正在尝试使用UIAutomation自动化登录过程.我知道使用UIAutomation的Web视图中的内容很棘手.我能够使用target.tap({x:100, y:200});来利用文本字段,但是我想在挖掘该字段后让UIAutomation输入文本.我该如何实现? 解决方案 您可以做类似: 的事情 获取对WebView的参考 var webView=window.scrollViews()[0].webViews()[0]; 点击要编辑的文本视图: webView.textFields()[0].tap(); 使用键盘 UIATarget.localTarget().frontMostApp().keyboard().typeString("text"); 您可以使用:webView.logElementTree()查找您的WebView. 其他解
8 2023-11-05
编程技术问答社区
如何在iOS界面自动化中检查元素属性?
所有UI自动化示例我已经看到使用标准组件,可以使用value()方法使用JavaScript API检查其状态.这有点限制.假设您想检查颜色或alpha值等. 如何检查视图的属性? 一个示例:点击某个元素应将其"选择".我想对其进行点击,然后验证ISELEDED是正确的. 更新: 我找到了 with predicate()理论上应该这样做的方法,除了它似乎仅在name属性上触发: element.withPredicate("isSelected == YES") // always fails element.withPredicate("name matches 'my element'") // works 解决方案 我最终以这种方法适合我的目的: 让uiview.AccessibilityValue返回具有相关属性的JSON字符串: - (NSString *)accessibilityValue { r
2 2023-11-05
编程技术问答社区