2016-09-30 74 views
9

我們得到了一個測試,我們需要swipeUp來查看tableView中的單元格。在swipeUp之後,我們無法打印出app.tables事件。如果我們不按預期輕掃一切工作。XCUIApplication上的swipeUp()打破了UITest中的XCUIApplication

  • 那麼Swift 3與Swift 2相比有什麼變化?
  • 我們如何解決這個問題?

例子:

func testSomethingInApp() { 
    let app = XCUIApplication() 
    app.launch() 
    app.swipeUp() //after this we cant get app.tables anymore. Befor everything is fine 
    XCTAssertEqual(app.tables.cells.elementBoundByIndex(5), "something") //something like this 
} 
+0

控制檯錯誤的輸出是什麼?任何調試日誌? – Oletha

+0

可悲的是,沒有其他信息只是在assambler代碼中拋出。在'swipeUp()'之後,你甚至不能'po app.tables'。它將以assambler代碼結束。 – BennX

+0

你能否確認滑動手勢信息應該通過'app'還是'app.tables'發送? – NeverHopeless

回答

0

的Xcode 9和雨燕4.0 DO解決這個問題。 app.swipeUp()不再清除tableview查詢元素。

1

嘗試訪問直接你的元素... app.staticText["something"]

當我寫我的UITests,我有這樣的一些問題。我搜索了元素,放置斷點並讀取輸出。

在控制檯中使用po app命令打印app


enter image description here


讀取輸出,尋找你想要的元素,看它的類型(如果是一個靜態文本,按鈕,otherElements,無論...)


enter image description here


查看所有可用的元素都顯示在輸出中。 輸出中每行的第一個字是每個元素的類型。

在你的代碼,訪問使用類型:app.buttons到按鈕,app.staticTexts到標籤等......

吉林大學

+0

我做到了。如前所述,無論何時我滑過任何元素,tableview都不再存在。如果我採用不同的元素,那麼'app'並不重要。所以即使我在其他地方滑動,tableview也無法訪問。 – BennX