Как получить подробную информацию о 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'}")
Проверьте результаты и скажите мне: это то, что вы хотите?