2016-01-19 3 views
1

Наше приложение является гибридным и содержит webview. Я пытаюсь автоматизировать наше приложение, используя Xcode UI Testing. я был в состоянии найти веб-кнопки с помощью:Xcode UI Testing - Поиск элемента в Webview по id

let app = XCUIApplication() 
app.launch() 
let button = app.staticTexts["Button's text"] 

Но в одном из наших тестов мы не проверить локализации - то есть изменения текста и статический текст запрос больше не действителен. Не удалось найти документацию о том, как найти элемент по его идентификатору (или даже имени класса). Есть идеи?

+0

Возможный дубликат http://stackoverflow.com/questions/32623869/testing-uiwebview-with-xcode-ui-testing/32627868# 32627868 http://stackoverflow.com/questions/32623869/testing-uiwebview-with-xcode-ui-testing – Injectios

+0

Спасибо! Но это не помогает. Они говорят об использовании «staticTexts», в то время как мой текст является динамическим. –

+0

@NirH Вы когда-нибудь узнали, как это сделать? Благодаря! – you786

ответ

-2

По идентификатору (UI-тест код на стрижа например):

app.buttons["yourBtnAccessibilityId"] 

этот идентификатор устанавливает в вас app`s код (например на Obj-C) и должен быть уникальным.

yourButton.accessibilityIdentifier = @"yourBtnAccessibilityId"; 

К классу (UI-тест код):

app.buttons.elementBoundByIndex(1) 
+1

Вопрос здесь явно о WebViews, а не о регулярных кнопках на экране. – Andriko13

3

У меня была аналогичная проблема, которую необходимо заполнить текстовые поля в SFSafariViewController.

Я обнаружил, что использование атрибута aria-label позволило мне найти элементы на странице, например.

<input role="textbox" aria-label="email" type="email" value="" name="user[email]" id="user_email"> 

И тогда в вашем коде, чтобы выбрать этот элемент

webViewsQuery.textFields["email"] 
Смежные вопросы