2016-02-16 5 views
3

Я пытаюсь найти способ, чтобы нажать на ссылку со следующей HTML структуры:Xcode Test UI - Как найти и нажмите() элемент Внутри WebView

<a> 
    <div id="facebook_sharing"></div> 
</a> 

a тег не имеет какой-либо атрибуты или текст, связанные с ним, только тег div.

Я попытался следующие, но не имели успеха:

app.links["facebook_sharing"].tap() 

Есть ли способ, чтобы найти тег в div элемент и нажмите на него?

Спасибо!

ответ

12

Xcode UI Testing взаимодействует с вашим приложением через доступность. Так же, как он не имеет доступа к основным элементам UIKit, он не имеет прямого доступа к HTML DOM. Вы не можете ожидать, что фреймворк узнает о чем-то в вашей разметке, если это каким-то образом не будет доступно для доступа.

«видеть приложение как пользовательское тестирование» открывает Доступность Inspector.app на вашем Mac. (Вы можете легко найти это, выполнив поиск в Spotlight.) Затем наведите курсор на div с помощью курсора. Если вы видите какие-либо из следующих атрибутов установите вы можете запросить для элемента:

  1. accessibilityTitle
  2. accessibilityPlaceholderValue
  3. accessibilityLabel
  4. accessibilityValue

Если ни один из них не установлены на a или div элементов, которые вы должны обновить самостоятельно. Подумайте об этом так. Если кто-то, кто с нарушением зрения, использует сайт, как он/она знает, что он/она может взаимодействовать со ссылкой Facebook?

+0

Благодарим вас за отличное объяснение. Когда я наводил курсор на тег div в консоли Safari, я вижу набор 'accessibilityValue' как' facebook_sharing'. Однако, когда я нависаю над WebView в iOS Simulator, я могу видеть только набор 'accessibilityTitle' как мой WebView. Я могу получить доступ к моему WebView с помощью 'app.otherElements [" MyWebViewAccessibilityLabel "]', но я не могу получить доступ к элементу 'div', используя' app.otherElements ["facebook_sharing"] '. Аналогично, 'app.otherElements [" facebook_sharing "]' .exists возвращает false. Я знаю, что я должен делать что-то не так. – Audible

+0

Я хотел бы добавить, что при просмотре WebView с помощью _Accessibility Inspector_ iOS Simulator включен, я могу видеть только метку специальных возможностей для самого WebView, больше ничего не может быть «clickable». Если я сделаю это в Safari на google.com, я могу щелкнуть по всем ссылкам на странице, как и ожидалось. – Audible

+0

В этом ответе мы предполагаем, что тестирование продолжается с симулятором, правильно? В отличие от реального устройства? – Vish