相关疑难解决方法(0)

Xcode UI测试 - UI测试失败 - 点击搜索字段"取消"按钮时无法滚动显示(通过AX操作)

我试图通过点击搜索栏中的"取消"按钮来关闭搜索字段.

测试用例未能找到取消按钮.它在Xcode 7.0.1中运行良好

我添加了谓词等待按钮出现.当我们点击"取消"按钮时,测试用例失败

let button = app.buttons[“Cancel”]
let existsPredicate = NSPredicate(format: "exists == 1")

expectationForPredicate(existsPredicate, evaluatedWithObject: button, handler: nil)
waitForExpectationsWithTimeout(5, handler: nil)

button.tap() // Failing here
Run Code Online (Sandbox Code Playgroud)

日志:

    t =     7.21s     Tap SearchField
t =     7.21s         Wait for app to idle
t =     7.29s         Find the SearchField
t =     7.29s             Snapshot accessibility hierarchy for com.test.mail
t =     7.49s             Find: Descendants matching type SearchField
t =     7.49s             Find: Element at index 0
t =     7.49s             Wait for app to idle …
Run Code Online (Sandbox Code Playgroud)

xcode xcode7 xcode-ui-testing

70
推荐指数
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
查看次数

并行执行Xcode 10 UI测试时,禁用模拟器的Connect Hardware Keyboard设置

当我在启用并行执行的情况下运行UI测试时,会创建一个现有模拟器的多个副本(例如iPad Air 2)来运行不同的测试套件。

这个stackoverflow答案的运行脚本中,我注入了一个plist项“ ConnectHardwareKeyboard”,其值为false,以禁用在启动模拟器时默认启用的硬件键盘连接: 硬件->键盘->连接硬件键盘

该脚本将为现有的模拟器(iPad Air 2)正确设置值,但是当并行执行测试时,将创建iPad Air 2的多个副本,并且副本的复制者不是原始设备的副本。克隆的设备列表中没有设置任何标志,但是硬件->键盘->连接硬件键盘显示为选中状态。

这导致我的UI测试失败,因为在将test输入到textField中后尝试关闭键盘时,键盘丢失了。

我浏览了stackoverflow和Apple开发人员论坛上的许多帖子,以尝试解决此问题,但没有发现任何东西。对于其他人来说这肯定是个问题...外面有没有人遇到过同样的问题和/或找到了解决方案?

xcode simulator ios xcode-ui-testing xcode10

8
推荐指数
1
解决办法
826
查看次数

使用UIAutomation禁用iOS模拟器的硬件键盘

我正在使用UIAutomation在iOS模拟器中进行一些自动化测试.

在Xcode 6中,iOS模拟器的键盘行为更改为类似于真实设备,现在有一个菜单项可以将Mac键盘连接/断开连接到模拟器:硬件>键盘>连接硬件键盘.

我不介意这一点,但连接Mac键盘时会发生的情况是模拟器将不再显示软件键盘.当您使用UIAutomation运行测试脚本UIATarget.localTarget().frontMostApp().keyboard().typeString("myString");时,即使您已将文本字段设置为第一个响应者,因此类似的调用也会失败,因为键盘不会出现.

这很烦人,因为如果我在模拟器中进行任何手动测试,我将需要记住在运行任何UIAutomation测试之前禁用硬件键盘,否则它们都会失败.

从UIAutomation JS脚本中有没有办法检查硬件键盘设置并禁用它们?或者,在执行UIAutomation脚本之前,从命令行执行此操作的任何方法?

keyboard simulator ios ios-ui-automation xcode6

6
推荐指数
1
解决办法
3319
查看次数

iOS 模拟器 - 以编程方式禁用连接硬件键盘

我正在编写依赖于显示软件键盘的 UITests。由于 CI 每次都会在全新的模拟器上启动测试,该模拟器已连接硬件键盘,因此不会提供软件键盘。

是否可以设置一些设置(可能在架构中?)以强制禁用模拟器连接硬件键盘。

我正在使用 Cucumber/appium 运行测试。

cucumber ios appium

5
推荐指数
1
解决办法
1835
查看次数

typeText() 正在输入不一致的字符

我开始在编写 UI 测试的同时尝试使用 Swift,但在向文本字段中输入文本时遇到了问题。下面是代码:

func testLoginUsernameField() {
    let app = XCUIApplication()
    app.launch()

    let username = "testusername2"

    let usernameField = app.textFields["username_field"]
    XCTAssertTrue(usernameField.exists)

    usernameField.tap()
    usernameField.typeText(username)
    XCTAssertEqual(usernameField.value as! String, username)
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时就会出现问题usernameField.typeText(username)。我的文字继续写,tstusername2而不是testusername2.

xctest swift xctestcase

4
推荐指数
1
解决办法
1087
查看次数