问题标签 [xcuitest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
72 浏览

ios - 在静态 iOS 框架上执行 XCUITests

我开发了一个静态 iOS .framework,但在开发过程中,我们发现由于数据集数量庞大,手动测试需要很长时间。

为了最大限度地减少测试时间,我们决定自动化这个过程,这样我们可以有更少的测试时间,这将使我们的质量保证团队能够在短时间内测试数据集。

具体来说,我们希望在 SDK 接受输入XCUITests的框架之一上执行,即我们希望为该特定视图控制器自动执行表单填充练习。UIViewControllerUITextfield

我已经成功捕获了活动和交互,XCUITest但我想在用户登陆该视图控制器时执行这些测试功能。目前,这些测试功能是按时执行的,即甚至没有启动SDK。

我的问题是,是否可以XCUITests在静态 iOS 框架上执行?如果是,是否可以在所需事件上开始执行?

谢谢

0 投票
4 回答
3148 浏览

ios - 如何检查 XCTest 和 XCUITest 中的空文本字段

我必须使用or检查是否有任何UITextField为空或包含任何值。我检查了很多地方,发现可以用来找出结果。但对我来说,问题是将占位符作为值返回,因此它无法将空字段检测为空。XCUITestXCTesttextField.ValuetextField.value

0 投票
4 回答
618 浏览

swift3 - 使用 AWS 设备场进行 XC UI 测试时出现错误“跳过设置测试:找不到足够的套件来执行”?

归档项目并使用开发配置文件创建 IPA 文件,然后按照以下链接创建 UITest IPA

http://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types-ios-xctest-ui.html

还要重新确认我是否做错了检查以下教程

https://www.mobdesignapps.fr/blog/2016/9/17/running-your-test-on-aws-device-farm?utm_source=stackoverflow&utm_medium=answer&utm_term=37184633

步骤说明

准备您的 iOS XCTest UI 测试

在将 iOS XCTest UI 测试上传到 Device Farm 进行测试之前,请确保您的 iOS XCTest UI 测试运行程序包包含在格式正确的 .ipa 文件中。要创建 .ipa 文件,您可以将 my-project-nameUITest-Runner.app 包放在一个空的 Payload 目录中。接下来,将 Payload 目录归档为 .zip 文件,然后将文件扩展名更改为 .ipa。*UITest-Runner.app 包是由 Xcode 在构建项目进行测试时生成的,它可以在项目的 Products 目录中找到。

但是无论我做什么都会出现以下错误并且我的测试被跳过 设置测试跳过:没有找到足够的套件来执行

不明白我必须做什么才能使其正常工作,任何人都可以帮助解决问题吗?提前致谢。

0 投票
3 回答
14052 浏览

xcode - Xcode UITest 有时找不到 XCUIElement 的属性

0 投票
1 回答
424 浏览

ios - iOS 应用程序的 Appium 检查器无法检测到 UIStackView 中的 UIView

我是 iOS 开发人员,目前正在探索使用机器人框架和 Appium 进行自动化测试。我注意到 Appium 检查器(或者可能是一般的 XCTest 框架)即使我放入 UIView 元素也无法检测到accessibilityIdentifier它。

下面是视图层次结构:

带有 UIStackView 的 IB

带有 UIStackView 的 IB

我在视图上添加accessibilityIdentifier类型字符串和值,因为它是保存.departure_buttonfromViewtapGesture

下面是 Appium 检查器 在此处输入图像描述

好吧,我可以选择第一个标签来执行点击并获得相同的效果。但是,这是正常行为吗?

0 投票
1 回答
84 浏览

ios - XCTest 在 TestSummaries 中没有 ActivitySummaries

我是运行 XCTest 的新手。运行后:打开~/Library/Developer/Xcode/DerivedData/My_Proj/Logs/Tests/TestSummaries.plist

问题 1:当打开 TestSummaries.plist 时,我可以找到我所有的 Tests。找不到 TestStatus 为 Success 的测试的 ActivitySummaries。但是对于 TestStatus 为 Failure 的测试有 ActivitySummaries。为什么会有这种行为?

问题 2:-For XCUITests ActivitySummaries 存在于所有成功和失败测试中。但不适用于纯 XCTest(单元)......有人可以指导我为什么 XCTest 没有 ActivitySummaries 其中 XCUITests 确实有相同的,或者有没有办法启用或添加它?

0 投票
1 回答
776 浏览

ios - 线程“主”org.openqa.selenium.WebDriverException 中的异常:处理命令时发生未知的服务器端错误

我是新手iOS automation并为此使用Appium命令行。我已经准备好在真实设备中启动应用程序(集成应用程序)的脚本,每当我在其中运行脚本Eclipse时,运行脚本时都会出现以下错误:

原始错误:无法安装应用程序:'命令'ios-deploy --id f31936d8edc3b8f880254efd02006273e81f5b --bundle /Users/eeposit/Library/Developer/Xcode/DerivedData/WebDriverAgent-dikkwtrisltbeobjmfvpthwwekvs/Build/Products/Debug-iphonesimulator/IntegrationApp.app'以代码 253 退出(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:9.97 秒构建信息:版本:'3.8.1',修订:'6e95a6684b',时间:'2017-12-01T19: 05:14.666Z' 系统信息:主机:'eeposits-Mac-mini-2.local',ip:'192.168.0.106',os.name:'Mac OS X',os.arch:'x86_64',os.版本:'10.13.2',java.version:'9.0.1' 驱动程序信息:driver.version:IOSDriver at java.base/jdk.internal.reflect。NativeConstructorAccessorImpl.newInstance0(Native Method) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) 在 org.openqa.selenium.remote.ErrorHandler。 throwIfResponseFailed(ErrorHandler.java:166) at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53) at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java: 91) 在 org.openqa.selenium.remote。ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance (Spliterators.java:958) 在 java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) 在 java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) 在java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) 上的 java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)。 stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) 在 java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 在 java.base/java。org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126) 上的 util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:476) org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java: 73) 在 org.openqa.selenium.remote.RemoteWebDriver 的 io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89) 的 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) .execute(RemoteWebDriver.java:601) 在 io.appium.java_client.execute(DefaultGenericMobileDriver.java:42) 在 io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) 在 io.appium.java_client。 org.openqa.selenium.remote.RemoteWebDriver 上的 ios.IOSDriver.execute(IOSDriver.java:1)。startSession(RemoteWebDriver.java:219) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:142) 在 io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38) 在 io.appium.java_client.AppiumDriver .(AppiumDriver.java:83) 在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:93) 在 io.appium.java_client.ios.IOSDriver.(IOSDriver.java:78) 在 FirstiOS.iosautomate.main(iosautomate .java:43)java_client.ios.IOSDriver.(IOSDriver.java:78) 在 FirstiOS.iosautomate.main(iosautomate.java:43)java_client.ios.IOSDriver.(IOSDriver.java:78) 在 FirstiOS.iosautomate.main(iosautomate.java:43)

我也成功安装了命令[ npm install -g ios-deploy ],但仍然显示错误。

因此,以下是我添加的功能。

请浏览我在此处附加的 appium 日志的图像:Appium 日志

[XCUITest] 错误:无法安装应用命令 'ios-deploy --id...exited with code 253

有什么建议或帮助吗?

0 投票
1 回答
1354 浏览

ios - 在 XCUI TestCase 期间最后停止在 UITableView 上滚动

在我的一个UITableView有超过 10 行。我想在UITestCase运行时滚动到最后一行。

我写了下面的代码来滚动到最后一行。

UITestCase我通过下面的代码在我的一种方法中调用了上述方法

通过这段代码,我可以滚动到最后一行,但在到达最后一行后,它继续滚动意味着无法停止滚动。

请帮我滚动到最后一行,然后它应该停止滚动,以便我可以执行下一个动作事件。

我有参考StackOverFlow答案,但没有一个符合我的要求。

提前致谢。

0 投票
2 回答
1269 浏览

ios - XCUITest 和 UIActivityViewController

如何在 XCUITest 中访问 UIActivityViewController(共享/操作表)?根据 Accessibility Inspector 的说法,t 由几个 UICollectionViews 组成,这使得很难消除工作表本身的歧义。

显示工作表时查询XCUIApplication().sheets.count退货。0

0 投票
0 回答
132 浏览

ios - 如何从 iOS IPA 获取测试方法列表?

我想从 IPA - XCTest 或 XCUITest 获取测试方法列表。有没有办法从 IPA 获取 XCUITest 测试列表?