每次我们在UI中更改内容时,我们都必须手动准备并获取iTunes Connect列表的375(= 5个屏幕截图*5种设备类型*15种语言)屏幕截图.
我正在尝试"利用"iOS 9的新UI测试来自动准备并为每种语言拍摄这些屏幕截图.这应该可以节省大量时间并为我们的用户提供更好的体验,因为我们没有经常更新屏幕截图,因为所涉及的工作很繁琐.
我在互联网上找不到多少帮助,可能是因为这个功能太新鲜了.所以这里有两个基本问题,希望我们能找到一种方法来实现它.
是否可以通过UI测试API将屏幕截图保存到磁盘?
是否可以为XCTestCase进行全新安装?
有人试图在新的Xcode 7 UI测试中包含模拟数据吗?
我正在尝试在xcode 7 beta中使用UI测试.我有一个带有两个文本字段的故事板.两个文本字段都有出口和不同的恢复ID.我记录了测试,但生成的代码是不可读的,它不起作用:
app.otherElements.containingType(.TextField, identifier:"y").childrenMatchingType(.TextField).elementBoundByIndex(0).typeText("hello")
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下内容,并将根据占位符文本工作?!?
app.textFields["PlaceholderText"].typeText("hello")
Run Code Online (Sandbox Code Playgroud)
在UI测试中获取TextField引用的正确方法是什么?
我有密码和密码conf textFields,我已应用"安全文本输入",以掩盖密码.但是,当我运行UI测试时,无法找到这些字段
UI测试失败 - 找不到"密码"TextField的匹配项
我试图选择这样的字段:
let passwordTextField = app.textFields["password"]
Run Code Online (Sandbox Code Playgroud)
但是当我尝试点击时失败:
passwordTextField.tap()
Run Code Online (Sandbox Code Playgroud)
关于如何进入该领域的任何想法?
我和我的团队一直在设置Jenkins服务器,以便在我们用作构建服务器的Mac Mini上自动运行单元和ui测试.Mac Mini没有连接外围设备,我们可以访问它的唯一方法是远程登录.
当我使用Mac内置的屏幕共享应用程序远程登录计算机时,使用iOS模拟器可以很好地运行测试.但是,如果我在测试运行时关闭了远程连接,那么在尝试键入时(包括所有其他测试/ ui测试通过飞行颜色),涉及键入文本的ui测试将失败并出现以下错误:
断言失败:等待键事件完成超时
当Jenkins自动为我们运行测试时,这显然会导致一些问题,因为我们并不总是希望远程登录到计算机.
我觉得这与模拟器的软件键盘有关,但我不明白为什么会出现这个问题.为了软件键盘存在或者某些这样的事情,mac是否需要连接某种显示输出?将显示器连接到机器(即使它没有真正使用)会导致测试通过吗?为什么会这样呢?
我有一个应用程序,其主要目的是将数据输入HealthKit.我想写一些Xcode UI测试来验证它是否成功编写了这些数据,但是我在Health应用程序中验证数据时遇到了一些困难.
当我最初录制我的测试时,它跳过我的模拟主页按钮按下,但它正在录制,当我滑到第一个主屏幕并导航到Health应用程序以显示数据点.
我搜索了如何按Home键,发现这个(有效):
XCUIDevice.shared.press(.home)
Run Code Online (Sandbox Code Playgroud)
但是,它记录的其他调用实际上都不适用于应用程序之外的导航.在主屏幕上滑动的录制代码显然看起来不对,当我tap()用a swipeRight()或者替换时也不起作用swipeLeft():
app.childrenMatchingType(.Window).elementBoundByIndex(1).childrenMatchingType(.Other).elementBoundByIndex(1).childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).elementBoundByIndex(0).childrenMatchingType(.ScrollView).element.tap()
Run Code Online (Sandbox Code Playgroud)
接下来几行,用于在主屏幕上启动应用程序,甚至不适用于当前可见页面上的应用程序图标:
let elementsQuery = app.scrollViews.otherElements
elementsQuery.icons["Health"].tap()
Run Code Online (Sandbox Code Playgroud)
有没有办法实现我正在尝试做的事情,或者我需要等待验证端到端测试,直到我添加从HealthKit读取到我的应用程序的能力?
我正在通过Jenkins运行Xcode的UI测试.每个步骤都会截取屏幕截图,因此在运行套件一段时间后,Mac会占用其所有硬盘空间.有谁知道你是否可以关闭Xcode UI Testing的自动截图,所以使用的空间更少?
这是我正在使用的表的图片.
我只想尝试"请求"(灰色)或"草稿"(橙色)的颜色.我能够得到"请求"或"草稿"的实际字符串
var timeSheetStatus =
app.tables.element.cells.elementBoundByIndex(0).staticTexts.elementBoundByIndex(1).label
Run Code Online (Sandbox Code Playgroud)
但这只是一个字符串,而不是UIlabel(如果它是UILabel我可以做label.textColor我相信).如何获得此字符串的颜色,以便我可以断言它确实是灰色或橙色?
我正在创建Automate UITest测试用例,我想在用户与元素进行3D Touch交互时测试场景,然后显示Peek和Pop视图.
我似乎找不到任何可能的方法来模拟元素上的3D Touch并继续.
任何人对此有任何想法,或3D Touch仍无法测试?
谢谢
我无法进行 UI 测试来切换 SwiftUI 表单中的 Toggle。似乎app.switches[*name*].tap()没有什么作用。还有其他人经历过吗?有想法吗?
下面的代码是该问题的演示。这是一个带有四个开关的简单形式,可根据开关位置生成一个 int 值。
我有以下 SwiftUI 视图:
struct ContentView: View {
@State var sw1: Bool = false
@State var sw2: Bool = false
@State var sw3: Bool = false
@State var sw4: Bool = false
var valueString: String {
var ret: Int = 0
if sw1 {
ret = ret + 1
}
if sw2 {
ret = ret + 2
}
if sw3 {
ret = ret + 4
}
if sw4 …Run Code Online (Sandbox Code Playgroud) xcode-ui-testing ×10
ios ×6
swift ×5
xcode ×4
ui-testing ×2
xcode7 ×2
3dtouch ×1
build-server ×1
healthkit ×1
ios9 ×1
iphone ×1
mocking ×1
screenshot ×1
swiftui ×1
uitest ×1
uitextfield ×1
xctest ×1