2017-07-05 20 views
0

XCUITestをXCodeバージョン8.3.3で使用しています。アプリケーションには、ブラウザウィンドウを起動するログインボタンがあります。開かれたURLの値にどのようにアクセスできるか教えてもらえるかどうかは不思議でした。ログインボタンを選択したときに正しいURLが表示されることを確認したい。XCUITest URL値を取得する

let app = XCUIApplication() 
let loginButton = app.buttons["Login"] 
loginButton.tap() 

この時点で、ブラウザウィンドウが開いている:enter image description here

どのように私はxyz.comの値を得ることができますか?アクセシビリティインスペクタを使用して

、私が見ることができます: enter image description here

答えて

2

私は打ち上げにSFSafariViewControllerでgoogle.comをロードする小さなプロジェクトを作成しました。私はこのアプリに対するUIテストを実行し、ウィンドウのデバッグの説明を印刷したとき、私は次の取得:あなたは値google.comが含まれている要素は、ボタンアクセシビリティフレームワークとして見られていることがわかります

(lldb) po XCUIApplication().windows.descendants(matching: .any) 
    t = 29.26s  Use cached accessibility hierarchy for com.tito.Safari 
    t = 29.27s  Find: Descendants matching type Window 
    t = 29.27s  Find: Descendants matching type Any 
Find: Target Application 0x6000000afa20 
    Output: { 
    Application 0x6000001684c0: {{0.0, 0.0}, {375.0, 667.0}}, label: 'Safari' 
    } 
    ↪︎Find: Descendants matching type Window 
    Output: { 
     Window 0x600000169a80: Main Window, {{0.0, 0.0}, {375.0, 667.0}} 
     Window 0x60000016a8c0: {{0.0, 0.0}, {375.0, 667.0}} 
     Window 0x60000016fb40: {{0.0, 0.0}, {375.0, 667.0}} 
     Window 0x60000016c780: {{0.0, 0.0}, {375.0, 667.0}} 
     Window 0x600000169e40: {{-0.0, -0.0}, {375.0, 667.0}} 
    } 
    ↪︎Find: Descendants matching type Any 
     Output: { 
     Button 0x608000169900: traits: 8589934593, {{9.5, 22.0}, {43.0, 34.0}}, label: 'Done' 
     Other 0x608000165b80: traits: 8589935104, {{68.5, 24.5}, {295.0, 29.0}}, identifier: 'URL', label: 'Address', value: 10% 
     Button 0x608000169840: traits: 8589934593, {{336.5, 24.5}, {29.0, 29.0}}, identifier: 'StopButton', label: 'stop' 
     Button 0x600000168100: traits: 146028888065, {{66.5, 24.5}, {299.0, 29.0}}, identifier: 'URL', label: 'Address', value: ‎google.com 
     Other 0x6080001696c0: traits: 8589934592, {{0.0, 20.0}, {375.0, 44.0}} 
     WebView 0x608000167ec0: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x608000167e00: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x608000169b40: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x608000167a40: traits: 8589934592, {{0.0, 622.5}, {375.0, 0.5}} 
     Button 0x6080001675c0: traits: 8589934849, {{0.5, 625.0}, {42.0, 40.0}}, label: 'Back' 
     Button 0x600000167bc0: traits: 8589934849, {{104.0, 625.0}, {42.0, 40.0}}, label: 'Forward' 
     Button 0x600000167c80: traits: 8589934593, {{207.5, 624.0}, {51.0, 40.0}}, label: 'Share' 
     Button 0x60000016fa80: traits: 8589934593, {{320.5, 625.5}, {55.0, 40.0}}, label: 'Open in Safari' 
     Toolbar 0x608000167b00: traits: 35192962023424, {{0.0, 623.0}, {375.0, 44.0}} 
     Other 0x608000165ac0: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x608000169780: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x608000169480: 
     Other 0x608000169180: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x60000016cc00: traits: 8589934592, {{0.0, 64.0}, {24.0, 603.0}} 
     Other 0x6080001690c0: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x600000168400: {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x600000169180: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x600000169f00: 
     Other 0x60000016a680: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x600000167b00: {{0.0, 0.0}, {375.0, 20.0}} 
     Other 0x60000016fd80: traits: 8388608, {{6.0, 0.0}, {39.0, 20.0}} 
     Other 0x60000016e340: traits: 8388608, {{50.0, 0.0}, {13.0, 20.0}}, label: '3 of 3 Wi-Fi bars', value: SSID 
     Other 0x60000016fe40: traits: 8389120, {{161.0, 0.0}, {57.0, 20.0}}, label: '10:33 AM' 
     Other 0x60000016e880: traits: 8388608, {{337.0, 0.0}, {33.0, 20.0}}, label: '-100% battery power' 
     Other 0x60000016dc80: {{0.0, 0.0}, {375.0, 20.0}} 
     StatusBar 0x600000169240: {{0.0, 0.0}, {375.0, 20.0}} 
     Other 0x60000016a440: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} 
     Other 0x600000170140: 
     Other 0x60000016da40: traits: 8589934592, {{-0.0, -0.0}, {375.0, 667.0}} 
     Other 0x60000016c600: 
     Other 0x60000016af80: traits: 8589934592, {{-0.0, -0.0}, {375.0, 667.0}} 
     } 

Button 0x600000168100: traits: 146028888065, {{66.5, 24.5}, {299.0, 29.0}}, identifier: 'URL', label: 'Address', value: 

これは間違っているようですが、それについては何もできません。この要素の値にアクセスする方法は、以下の

XCUIApplication().buttons['URL'].value! 

だろう唯一の問題は、それが次

‎gen.xyz, secure and validated connection 

これを行うには最後のものは、これを解析することで、あなたが買ってあげるを返すということですこれは、しかし間違いなくハックで、Appleはそれがアクセシビリティに来るとき、独自の製品に、独自のアドバイスを適用することを決定した場合、将来的に変更される可能性があります

let value = XCUIApplication().buttons["URL"].value as! String 
let address = value.components(separatedBy: ",").first! 

取り組みます。

+3

詳細な回答ありがとうございます!非常に役立ちます。 – rfodge

+1

値が戻ってくると、冒頭に\ u(e2)が表示されます。その理由は分かりますか? – rfodge

+0

えええええ、どのURLを読み込もうとしていますか? –

関連する問題