标签: xcode-ui-testing

XCode 7 UI测试:解除系统生成的UIAlertController不起作用

我有一个UI测试,涉及解雇系统生成UIAlertController.此警报要求用户访问设备日历的权限.测试的目标是点击OK按钮后的行为:

1 let app = XCUIApplication()
...
// this code was basically generated by the recording feature of XCode 7 
2 app.alerts.elementBoundByIndex(0).collectionViews.buttons["OK"].tap()
Run Code Online (Sandbox Code Playgroud)

现在,OK第2行不是点击按钮,而是让模拟器点击第一个按钮,该Cancel按钮恰好是按钮......

此外,我发现测试框架无法准确识别出现的警报.因此,如果我检查当前的警报计数,我总是得到0:

// ...tap...
let count = app.alerts.count // == 0
Run Code Online (Sandbox Code Playgroud)

如果我使用NSPredicate条件并等待几秒钟,也会发生这种情况.

UI测试是否可能无法与系统生成的警报一起可靠地工作?我正在使用XCode 7.0.1.

ui-testing uialertcontroller xcode7 xcode-ui-testing

2
推荐指数
1
解决办法
1772
查看次数

XCode7 UITests如何测试屏幕边缘平移手势?

我的应用程序中有以下手势识别器.我查看了xCode7用户界面并看到它向上/向下/向左/向右滑动,但没有平移或边缘平移手势.

如何测试或启动屏幕边缘平移手势以用于UITesting目的?

  UIScreenEdgePanGestureRecognizer *leftEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(show)];
    leftEdgeGesture.edges = UIRectEdgeLeft;
    leftEdgeGesture.delegate = self;
    [self.view addGestureRecognizer:leftEdgeGesture];
Run Code Online (Sandbox Code Playgroud)

objective-c ios ios9 xcode7 xcode-ui-testing

2
推荐指数
1
解决办法
1483
查看次数

使用XCUI测试用例测试UICollectionView无限滚动

如何在我的一个集合视图中测试无限滚动?我尝试模拟滚动,就像在"拉动刷新"示例中解释的那样,但它没有奏效.

let app = XCUIApplication()
let start = app.coordinateWithNormalizedOffset(CGVectorMake(1, 6))
let finish = app.coordinateWithNormalizedOffset(CGVectorMake(1, 0))
var x = 0
while(x < 20){
  x++
  start.pressForDuration(0, thenDragToCoordinate: finish)
}
Run Code Online (Sandbox Code Playgroud)

(while条件仅用于测试,我将更改它以询问当滚动工作时是否存在特定元素)

ui-testing ios swift xcode7 xcode-ui-testing

2
推荐指数
1
解决办法
1235
查看次数

我可以为我的应用重置模拟器的联系人和位置权限设置,以模拟首次使用场景吗?

我的iOS应用程序目前有一个iOS 7的部署目标(虽然我的方案运行iOS 9.2模拟器),以及与AddressBook,AddressBookUI和CoreLocation框架的链接.我在Xcode 7中有一套Swift UI测试(不在Instruments中).当用户首次使用我的应用时,系统会要求他们在应用运行时访问其联系人及其位置.由于这涉及需要完美执行的大量代码,因此我希望自动化所有可能的结果并确保UI处于所需状态.

我可以使用Xcode UI测试重置模拟器的设置以访问联系人和位置吗?例如,我可以setUp()在我的测试用例类中的函数中实现它.我找到了一些关于如何响应对话框的教程,但在我到达那一点之前,我需要模拟请求权限的条件.这是一个解释如何响应此类警报的问题.

core-location abaddressbook xcode-ui-testing

2
推荐指数
1
解决办法
780
查看次数

Xcode7 ui测试:staticTexts ["XX"] .swipeRight()滑动不够远

对于UI测试,我想执行一个swipeRight-gesture来进一步访问按钮.我想要滑动的元素位于屏幕的底部.我访问它:

element.staticTexts["TEST TEXT"].swipeRight()
Run Code Online (Sandbox Code Playgroud)

在执行测试时,滑动不够远.它不会触发元素完全向右滑动并显示我想要点击的其他按钮.

我感觉swipeRight()抓住静态文本的中间并执行手势.

是否有可能将元素更多地向左移动,使其向右滑动更多?

谢谢你的任何建议!

xcode ui-testing ios xcode7 xcode-ui-testing

2
推荐指数
1
解决办法
1130
查看次数

如何使用ExpectationForPredicate并点击一个按钮

检查按钮是否启用后,如何点击它?

我在这里找到了此示例,但不适用于我的情况。

Xcode UI测试的测试用例中的延迟/等待

这是一部分代码:

    let app = XCUIApplication()
    let button = app.buttons["Tap me"]
    let exists = NSPredicate(format: "exists == 1")
    expectationForPredicate(exists, evaluatedWithObject: button){
        button.tap()
        return true
    }
 waitForExpectationsWithTimeout(5, handler: nil)
Run Code Online (Sandbox Code Playgroud)

但通过点击按钮,我的测试失败。谢谢

ios xctest swift xcode-ui-testing

2
推荐指数
1
解决办法
1224
查看次数

自从8.2更新到Xcode 8.3.2后,我们的UI测试失败,因为UItableView不再响应swipeUp()或swipeDown()

我已经进行了一些过去一年的UI测试,他们每晚都会运行,我们设置了一台显示器,这样我们就可以看到它们何时出现故障,而且几个月和几个月都没问题.

今天早上我们将机器更新为Xcode 8.3.2,将构建服务器从8.2更新到8.3.2,现在UI测试不再通过.

我有一个包含12个单元格的tableView,前6个是可见的,但我想按最后一个单元格,所以我调用swipeUp()来滚动tableView.通常,tableView将滚动一两秒,我想要的单元格变得可见,我可以断言它存在并在其上调用tap().

然而,现在,当观看UI测试运行时,当调用swipeUp()方法时,它不再滚动很长时间.它似乎只滚动几毫米然后停止,这意味着断言失败,我们无法点击单元格,因此我们所有的UI测试都失败了.

我在网上搜索过这个,除了这个似乎有同样问题的小片段之外,找不到太多信息.

我试图按照建议删除swipeUp()调用,但这似乎没有解决问题,我们已经测试了几个Xcode安装和笔记本电脑以达到同样的效果.

只是寻找一些建议,我想知道是否有其他人看过这个问题?

xcode ios xcode-ui-testing

2
推荐指数
1
解决办法
342
查看次数

在Swift 3 UI测试中访问自定义视图组件中的元素

我是任何类型的iOS编程的新手.我正在尝试为我的一个场景编写UI测试用例.

以下是我使用recode方法并点击自定义组件时得到的代码.

let button = XCUIApplication().children(matching: .window).element(boundBy: 0).children(matching: .other).element.children(matching: .button).element
Run Code Online (Sandbox Code Playgroud)

在此自定义组件中有两个按钮.我想知道选择了哪个按钮.为此我需要识别按钮.但是我得到了相同的代码,我点击自定义视图.

如何访问自定义视图中的每个组件.任何帮助都会很棒.

iphone unit-testing ios xcode-ui-testing swift3

2
推荐指数
1
解决办法
2240
查看次数

如何在Xcode UITest期间关闭系统对话框

在我的单元测试中,有一个页面询问许可证使用库。运行我的单元测试时,即使我的所有单元测试都已完成,此权限对话框也会出现在屏幕上,并且不会消失。当UI测试尝试运行时,它们不会导致此对话框。有什么方法可以在单元测试之前运行UI测试?

xcode xcode-ui-testing

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

如何在使用Xcode 11和iOS 13进行UI测试期间关闭UIActivityViewController

Apple重新设计了显示的共享表,该共享表现在破坏了我的UI测试。

我试图通过Xcode记录新的UI测试,但是一旦我点击了dismiss按钮,该测试就会终止,因此我无法捕获该事件。

最终,我只想知道如何访问下面箭头所示的灰色“ X”:

iphone ios uiactivityviewcontroller xcode-ui-testing ios13

2
推荐指数
1
解决办法
132
查看次数