2016-10-12 10 views
3

に部分文字列を照会するためにどのように私は、サブストリングがUIテストのナビゲーションバーに表示されていることを確認できるようにしたいと思います。例えばXCTestは - ナビゲーションバーのタイトル

、ナビゲーションバーのタイトルは「家賃のプロパティ」であるならば、私はそうのようにそれを一致させることができます:テキストがない場合には

  • XCTAssert(XCUIApplication().staticTexts["Rent Properties"].exists) 
    

    をしかし、これは二つの問題があります私はそのよう

「家賃」として部分文字列に一致することができるようにしたいのに対し、ナビゲーションバーにそれはまだ、それは正確に一致しない
  • と一致します

    どうすればいいですか?

  • 答えて

    4

    サブストリング家賃を照合するために、あなたは以下のコードを使用することができます表示します。デバッグモードでpoまたはpの印刷オプションを使って調べる必要があります。

    あなたが使用しようとするかもしれない....例えば

    は、カウントが異なっていることや要素がそうでhittableではありませんか。

    let app = XCUIApplication() 
    XCTAssert(app.staticTexts["Rent Properties"].exists) 
    
    or 
    let app = XCUIApplication() 
    app.staticTexts["Rent Properties"].hittable 
    
    or 
    let app = XCUIApplication() 
    app.staticTexts["Rent Properties"].enabled 
    
    or 
    
    app.staticTexts.matchingIdentifier("Rent Properties").count 
    //take count while showing the text and take the count while not showing the text 
    
    2

    はこれらを試してみてください。代わりにappicationから得ることの要素から静的なテキストし1.Get

    Eg:`XCUIApplication().navigationBars["Rent Properties"].staticTexts["Rent Properties"]` 
    
    要素を整合させるために
  • 使用elementMatchingPredicate又はexpectationForPredicate
      。要素が表示またはされていないが、確かに違いがなければならない最初のオプションについて

      XCUIApplication().staticTexts.matchingPredicate(NSPredicate(format: "label CONTAINS 'Rent'")).elementBoundByIndex(0) 
      //it may contains one or more element with substring Rent. 
      //you have to find out which element index you want in debug mode using p print() options. 
      

    便利なリンク:http://masilotti.com/ui-testing-cheat-sheet/

  • 関連する問題