标签: xcode-ui-testing

XCUIElement - 获取图像值

我有一个类型.Image和类的变量XCUIElement.像这样的东西:

var image = app.descendantsMatchingType(.Image).elementAtIndex(0)

有没有办法可以提取实际图像,以便将其与其他图像进行比较?

我试过caling value方法,但它返回一个字符串.将它投射到UIImage总是失败.

ios xctest swift xcode-ui-testing

17
推荐指数
2
解决办法
4398
查看次数

Xcode UI测试 - 与测试管理器服务的连接丢失

有时在运行我的UI测试时,我收到以下错误Lost connection to test manager services.没有日志或任何东西.随机发生.我会提供更多信息,但由于错误的性质我只是没有它.

使用Xcode 7 beta 5.

xcode ios swift xcode-ui-testing

16
推荐指数
1
解决办法
1994
查看次数

Xcode UI Testing - 使用typeText()方法和autocorrection键入文本

我有一个如下测试:

let navnTextField = app.textFields["First Name"]
let name = "Henrik"
navnTextField.tap()
navnTextField.typeText("Henrik")
XCTAssertEqual(navnTextField.value as? String, name)
Run Code Online (Sandbox Code Playgroud)

问题是,默认情况下iPhone Simulator,由于系统设置,我有波兰语键盘,"Henrik"会自动更改为"ha".

简单的解决方案是从中删除波兰语键盘iOS Settings.然而,该解决方案没有解决问题,因为iPhone Simulator可以重置然后测试将再次失败.

有没有办法在测试用例之前设置自动更正或以其他方式将文本输入到文本字段.

uitextfield xctest ios9 xcode-ui-testing

16
推荐指数
3
解决办法
2万
查看次数

是否可以通过UI测试中的代码"切换软件键盘"?

我有测试登录功能的UI测试(并用它来测试其他东西),但有时当焦点从一个字段更改为另一个字段时 - 键盘隐藏,虽然光标在字段中闪烁,但我收到错误field.typeText- no focused fields to fill.

不知怎的,我意识到,点击一个Hardware -> Keyboard -> toggle software keyboard让键盘在屏幕上保持不变,所以测试效果很好.但是我需要让它在任何开发人员机器上的任何测试设备上工作,所以我想以编程方式设置这个选项,而不要讨厌"如果测试失败,请在项目的自述文件中设置...并手动设置...".

可能吗?

xcode ios ios-simulator xcode-ui-testing

16
推荐指数
4
解决办法
4893
查看次数

如何将我的App模块导入MyAppUITests文件?

这是我的简单测试用例:

import XCTest
@testable import MyApp //it doesn't work
Run Code Online (Sandbox Code Playgroud)

因为这:

在此输入图像描述

class TabBarControllerTests: XCTestCase {

    override func setUp() {
        super.setUp()

        let defaults = NSUserDefaults.standardUserDefaults()
        defaults.setObject([], forKey: DBTabBarOrderedIndexesKey) //key is undefined, because of lack of my app module
        defaults.synchronize()

        continueAfterFailure = false
        XCUIApplication().launch()
    }

    func testIsOrderOfTabsSaved() {

        XCUIApplication().tabBars.buttons["Catering"].tap()
        //what next?
    }
}
Run Code Online (Sandbox Code Playgroud)

一旦我点击UITabBarItem我改变了值DBAppSettings.mode,所以在这里我想访问我的DBAppSettings.mode属性来检查它是否真的改变了.

我注意到有一个奇怪的事情,当我构建我的应用程序,并检查构建的内容时,我的UITest目标没有构建.那很重要么?

在此输入图像描述

import xcode ios swift xcode-ui-testing

15
推荐指数
1
解决办法
1680
查看次数

你怎么看到XCUIElement树?

背景:

我正在尝试使用XCode GM在iOS 9.0中进行ui级别测试.

题:

在XCode GM中是否有一个命令可以让你看到可访问元素及其关系的"树"?类似于Appium中的'page'命令?

理想情况下,我可以在调试器中运行一个命令,它会给我一个可供选择/操作的元素列表.目前,您可以在单个XCUIElement上使用debugDescription,但只提供该元素的信息.

testing xcode ios appium xcode-ui-testing

15
推荐指数
3
解决办法
8078
查看次数

在UI测试中无法访问字符串本地化(Xcode 7)

所以我有一种情况,我有一些经验证的textFields.我正在尝试运行UI测试,当他们失败时,他们会收到警告,弹出一条错误消息(可能是一个不同的消息,取决于哪些字段无效以及以何种方式).

我想测试一下,不仅会出现警报,而且会显示正确的消息.我遇到的问题是我需要获取本地化的文本进行比较(如果我用英语以外的其他语言运行测试),但是当我在UITest中调用NSLocalizedString时它无法收集正确的本地化字符串(只是返回关键[默认])

我已经尝试将localizeable.strings文件添加到UITest目标,但无济于事.有谁知道这是否可能?

编辑作为旁注:我也试过设置一个辅助功能标识符UIAlertView但是当我用该辅助功能标识符查询它不存在时,我只能使用看起来倒退的警报标题来查询它.

ios xcode7 xcode-ui-testing

15
推荐指数
2
解决办法
3480
查看次数

想要在Xcode中的UI测试期间停止调试控制台在测试运行后清除

当我在Xcode 7.1.1中使用UI测试运行单个测试并且测试完成时,调试控制台日志记录输出消失.

我正在使用模拟器和我的setUp()包含运行测试XCUIApplication().launch().

测试运行时,控制台会填满测试输出.

它会在测试完成后模拟器关闭时消失.

有没有办法防止控制台文本消失并在测试完成后保持可见?

xcode ios swift xcode-ui-testing

15
推荐指数
1
解决办法
2479
查看次数

由于物理设备上的XCApplicationStateRunningActive,Xcode UI测试失败

在我的应用程序中,我正在添加一些UI测试.使用一种测试方法一切都很完美,但是当我添加第二种方法时,由于以下错误,测试失败: 在此输入图像描述

我觉得[[[XCUIApplication alloc] init] launch]; 不会像它想象的那样终止应用程序.

编辑1:

我还注意到,如果我在测试完成后按下我的物理设备上的主页按钮,我可以看到应用程序的2个实例仍然在后台运行.如果我再次尝试启动测试,我会在Xcode中收到消息,因为应用程序null仍在运行,因此无法启动应用程序.这令人沮丧:(

有没有人有线索或有类似的问题?

任何形式的帮助都非常感谢.

objective-c ios xcode-ui-testing

15
推荐指数
1
解决办法
2051
查看次数

XCUITest发现多个匹配错误

我正在为我的应用程序编写测试,需要找到"查看2个更多优惠"按钮,我的页面上有多个这些按钮,但我只想点击一个.当我尝试这个时,会出现一个错误:"发现多个匹配"所以问题是,我可以通过什么方式解决这个问题,这样我的测试就会搜索并点击一个名为"查看2个更多优惠"的按钮.

这是我目前的代码

let accordianButton = self.app.buttons["View 2 more offers"]
    if accordianButton.exists {
        accordianButton.tap()
    }
    sleep(1)
}
Run Code Online (Sandbox Code Playgroud)

swift xcode-ui-testing

15
推荐指数
3
解决办法
1万
查看次数