2016-08-03 12 views
1

動画プレーヤーが特定のセルを選択して再生します。 私の目標は、コード内で進行する別のビデオが再生されるまで待つことです。その後、しかし、ブレークポイントを配置し、デバッガで手動でチェックし、セル - :(>真cell.selectedセルがもはや選択されていない場合)ループ条件が再評価されないwhile

while app.tables.elementBoundByIndex(0).cells.elementBoundByIndex(0).selected {} 

どういうわけか、whileループでは、再評価は発生しません。選択 - >偽

答えて

1

whileループ内のビュー階層でチェックを実行しても、各ループ間でビュー階層が更新されるわけではありません。チェックは、キャッシュされたバージョンのビュー階層に対して行われます。これは、アプリケーションと対話しない限り更新されません。

チェックのたびにビュー階層が更新されるようにするには、expectationForPredicate:evaluatedWithObject:handler:waitForExpectationsWithTimeout:handler:を使用する必要があります。

class MyTestCase: XCTestCase { 
    let cell = app.tables.elementBoundByIndex(0).cells.elementBoundByIndex(0) 
    let notSelectedPredicate = NSPredicate(format: "selected == false") 
    expectationForPredicate(notSelectedPredicate, evaluatedWithObject: cell, handler: nil) 
    waitForExpectationsWithTimeout(10, handler: nil) 
    // proceed with the test... 
} 

このようにして、チェックするビュー階層は、チェックごとに更新されます。

+0

ありがとうございました!出来た!! – romdj

関連する問題