Как получить подробную информацию о WebView с помощью calabash-android?

Я планирую использовать Calabash-Android для разработки сценария тестирования автоматизации для приложения Android. Но я не знаю, как коснуться / запросить кнопку "Зарегистрироваться" на странице ниже:

Я попытался "запросить" * в консоли Calabash, но не могу получить какую-либо информацию о кнопке. Вывод запроса:

    irb(main):002:0> query "*"
[
    [0] {
                        "id" => nil,
                   "enabled" => true,
        "contentDescription" => nil,
                   "visible" => true,
                       "tag" => nil,
               "description" => "com.android.internal.policy.impl.PhoneWindow$De
corView{b11eeb10 V.E..... R.....I. 0,0-768,1134}",
                     "class" => "com.android.internal.policy.impl.PhoneWindow$De
corView",
                      "rect" => {
            "center_y" => 617,
            "center_x" => 384,
              "height" => 1134,
                   "y" => 50,
               "width" => 768,
                   "x" => 0
        }
    },
    [1] {
                        "id" => nil,
                   "enabled" => true,
        "contentDescription" => nil,
                   "visible" => true,
                       "tag" => nil,
               "description" => "android.widget.LinearLayout{b10779d0 V.E..... .
.....I. 0,0-768,1134}",
                     "class" => "android.widget.LinearLayout",
                      "rect" => {
            "center_y" => 617,
            "center_x" => 384,
              "height" => 1134,
                   "y" => 50,
               "width" => 768,
                   "x" => 0
        }
    },
    [2] {
                        "id" => "content",
                   "enabled" => true,
        "contentDescription" => nil,
                   "visible" => true,
                       "tag" => nil,
               "description" => "android.widget.FrameLayout{b1234b00 V.E..... ..
....I. 0,0-768,1134 #1020002 android:id/content}",
                     "class" => "android.widget.FrameLayout",
                      "rect" => {
            "center_y" => 617,
            "center_x" => 384,
              "height" => 1134,
                   "y" => 50,
               "width" => 768,
                   "x" => 0
        }
    },
    [3] {
                        "id" => nil,
                   "enabled" => true,
        "contentDescription" => nil,
                   "visible" => true,
                       "tag" => nil,
               "description" => "android.widget.LinearLayout{b11ecf40 V.E..... .
.....I. 0,0-768,1134}",
                     "class" => "android.widget.LinearLayout",
                      "rect" => {
            "center_y" => 617,
            "center_x" => 384,
              "height" => 1134,
                   "y" => 50,
               "width" => 768,
                   "x" => 0
        }
    },
    [4] {
                        "id" => "NoResourceEntry-6",
                   "enabled" => true,
        "contentDescription" => "Web View",
                   "visible" => true,
                       "tag" => nil,
               "description" => "org.apache.cordova.inappbrowser.InAppBrowser$6$
5{b108af68 VFEDHVC. .F....I. 0,0-768,1134 #6}",
                     "class" => "org.apache.cordova.inappbrowser.InAppBrowser$6$
5",
                      "rect" => {
            "center_y" => 617,
            "center_x" => 384,
              "height" => 1134,
                   "y" => 50,
               "width" => 768,
                   "x" => 0
        }
    }
]

Не могли бы вы дать мне несколько предложений? Большое спасибо!

1 ответ

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

query("systemWebview css:'*'")

Эта инструкция вернет массив со всеми элементами в веб-представлении. Вы получите классы, идентификаторы и т. Д. Если вы хотите получить только те элементы, для которых textContent содержит слово Register (что поможет вам легче его найти), вы должны выполнить это:

query("systemWebview css:'*' {textContent CONTAINS 'Register'}")

Проверьте результаты и скажите мне: это то, что вы хотите?

Другие вопросы по тегам