2016-05-25 9 views
0

ためWebElementのいずれかの類似したのgetText()があります。私は<strong>Xcodeの7.3</strong>を使用して<strong>AppleTVの</strong> UIテストを行うために<strong>XCUITest</strong>を使用していますXCUIElement

WebElementのようにXCUIElementがあります。しかし、類似の種類のgetText()XCUIElementが存在し、これはに存在し、Selenium WebElementです。

基本的に私はXCUIElementからテキストをキャプチャしたいと思います。

は、例えば:要素から "を有効にするためにサインイン":

let ele:XCUIElement = XCUIApplication().collectionViews.cells[ 
               "Sign In to Activate"]. 

ので、値を取得するためにとにかくがあります。どんな助け?

答えて

1

UIテストでは、あなたの問題について少し違った考えをする必要があります。 に既知の要素の値を読み取る代わりに、がすべてに存在するかどうかを確認してください。

これは、実際には、期待値のラベルがWebビューに表示されていることを確認することを意味します。

let app = XCUIApplication() 
let signInLabel = app.staticTexts["Sign In to Activate"] 
XCTAssert(signInLabel.exists) 

あるいは、要素が実際にリンクであれば、そのように、links経由でアクセス:だから、あなたは以下を経由して、それを主張することができます表示されるようにラベルを「有効にするためにサインイン」を待っている場合:

let signInLink = app.links["Sign In to Activate"] 
XCTAssert(signInLink.exists) 
2

あなたはスタティックXCUIElementを持っていたら、labelプロパティを使用してテキストを取得することができます。

let app = XCUIApplication() 
let textElement = app.staticTexts["myLabelIdentifier"] 
let text = textElement.label 

セルがstaticText(UILabel)オブジェクトではないため、セルのテキストを取得できません。あなたのセルにUILabel(テキスト)が含まれている場合、そのオブジェクトを最初に見つけ出す必要があります。

app.staticTextsを実行すると、画面上のすべてのテキスト要素を取得できます。次に、テキスト要素のリストを目的の要素だけに絞り込む必要があります。これを行うには、accessibilityIdentifierをあなたのアプリのコードでUILabel。

label.accessibilityIdentifier = "myLabelIdentifier" // This can be whatever String you like 

ラベルが再利用されるセルが複数ある場合は、そのセルも識別できる必要があります。たとえば、3番目のセル内でテキスト要素を検索する場合は、次のようになります。

let app = XCUIApplication() 
let cell = app.cells.elementBoundByIndex(2) 
let textElement = cell.staticTexts["myLabelIdentifier"] 
let text = textElement.label 
関連する問題