Здравствуйте.
C WebView умеют работать следующие open-source решения:
Вышеперечисленные решения как раз используют текстовые локаторы (по аналогии с Selenium). Чуть по-разному эти локаторы задаются, но это уже формальности. Пара примеров:
# Appium
driver.findElement(By.xpath("//ImageView[@id='menuButton']")).click()
# Calabash
touch "ImageView id:'menuButton'"
Экраны можно описывать, используя Page Object подход.
Для захвата локаторов можно использовать Selendroid Inspector (входит в Selendroid и Appium), стандартные средства браузеров (открыв в них содержимое WebView), а также Chrome Remote Debugging.
Кроме того, существуют решения на основе распознавания изображений / образов:
В них вместо текстовых локаторов используются графические изображения нужных контролов — полей, кнопок и т.д. Проверяемый экран, полученный в результате действий также, как правило, сравнивается с графическим эталоном. И часто встроена функция распознавания текста (OCR).
По моему мнению, в вашем случае выбор должен прежде всего основываться на том, каким образом фигура реализована на веб-странице и насколько сложно определить её местоположение относительно других элементов.
— Если вы видите решение этой задачи известными вам средствами (скажем, Selenium’ом) — берите любой из перечисленных в первом списке инструментов. Комментарий: для MonkeyTalk нужны исходники, он встраивает доп. библиотеку в приложение; если работали с Selenium, вам будет проще осваивать Appium и Selendroid.
— Если же с ходу такое решение не представляете, рекомендую посмотреть в сторону image-based инструментов (второй список). При таком подходе будут сложности, но преодолимые:
- приложение нужно ставить и запускать отдельным скриптом (возможно не нужно для fMBT);
- чуть сложнее настроить тестирование на реальных устройствах;
- нужно больше ресурсов, чтобы запускать несколько тестов параллельно (на разных эмуляторах или устройствах).
P. S.
@Nebelskyi, спасибо вам за информацию о Robocop
@harad, вам спасибо за информацию о за fmbt