Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用于点击tableview单元格_Ios_Swift_Xcode7_Xcode Ui Testing_Ui Testing - Fatal编程技术网

Ios 用于点击tableview单元格

Ios 用于点击tableview单元格,ios,swift,xcode7,xcode-ui-testing,ui-testing,Ios,Swift,Xcode7,Xcode Ui Testing,Ui Testing,我刚刚开始使用Xcode 7中引入的新Xcode UI测试框架。 我在做第一个非常简单的测试时遇到了一些问题,我想知道我是否做错了什么 我有一个结构简单的应用程序: 第一个场景:静态表格视图,带有静态单元格。完全配置 在故事板中。此表视图中唯一的单元格具有标签 “启动UI测试” 选择此选项将链接到动态表视图,并在 导航栏是一个系统“播放”按钮(启动 下载内容) 我的第一个测试很简单,当您选择“开始UI测试”单元时,您将移动到导航栏中有播放按钮的视图。 我的问题是,如果我添加了一个睡眠调用(2

我刚刚开始使用Xcode 7中引入的新Xcode UI测试框架。 我在做第一个非常简单的测试时遇到了一些问题,我想知道我是否做错了什么

我有一个结构简单的应用程序:

  • 第一个场景:静态表格视图,带有静态单元格。完全配置 在故事板中。此表视图中唯一的单元格具有标签 “启动UI测试”
  • 选择此选项将链接到动态表视图,并在 导航栏是一个系统“播放”按钮(启动 下载内容)
我的第一个测试很简单,当您选择“开始UI测试”单元时,您将移动到导航栏中有播放按钮的视图。 我的问题是,如果我添加了一个睡眠调用(2),或者在点击table view单元格上的tap()调用之前添加了一个断点并停止执行,一切都按预期工作,应用程序将移动到下一个视图,测试成功,则会检测到播放按钮在那里。但是,如果此时我没有添加对sleep(2)的调用,则tap()似乎什么也不做,应用程序不会导航到下一个视图,因此测试失败,因为它找不到播放按钮(应用程序仍在视图1上)

  • 是否有必要在每个单元格点击操作之前调用sleep(2)
  • 这是虫子吗
  • 有没有更好的解决办法
代码如下:

func testExample() {

        let app = XCUIApplication()
        let tablesQuery = app.tables
        let firstCell = tablesQuery.element.cells.staticTexts["Start UI Tests"]

        sleep(2) //Only by adding in a call to sleep() before does the tap() call do anything
        firstCell.tap()

        let exists = NSPredicate(format: "exists == true")
        let playButton = app.navigationBars["Live_App_Demo.UITestsTableView"].buttons["Play"]

        expectationForPredicate(exists, evaluatedWithObject: playButton, handler: nil)
        waitForExpectationsWithTimeout(5, handler: nil)

        XCTAssert(playButton.exists)
    }

在初始屏幕上是否有任何动画或微调器?您是否尝试过直接访问标签?请尝试
app.staticText[“启动UI测试”]。点击()
。我没有任何动画/微调器,只有一个带有硬编码数据的静态表。我在appDidFinishLaunching中使用id/key设置了parse SDK,但是去掉它不会改变结果。另外,直接访问标签不会改变结果,可以使用sleep(),但不能没有此调用。您可以将示例代码发布到GitHub吗?不幸的是,在当前状态下,该代码包含我工作的公司的非公开密钥,因此我无法轻松做到这一点。如果我有机会制作一个精简版来演示这个问题,我会告诉你在最初的屏幕上有没有动画或旋转器?您是否尝试过直接访问标签?请尝试
app.staticText[“启动UI测试”]。点击()
。我没有任何动画/微调器,只有一个带有硬编码数据的静态表。我在appDidFinishLaunching中使用id/key设置了parse SDK,但是去掉它不会改变结果。另外,直接访问标签不会改变结果,可以使用sleep(),但不能没有此调用。您可以将示例代码发布到GitHub吗?不幸的是,在当前状态下,该代码包含我工作的公司的非公开密钥,因此我无法轻松做到这一点。如果我有机会制作一个精简版来演示这个问题,我会的