Взаимодействие с обекти на страница в едностранично приложение

Опитвам се да взаимодействам с елемент на страницата, който е под друг елемент, но е скрит. Заявката за calabash връща правилния елемент. Изглежда, че докосването взаимодейства с елемента, тъй като не получавам грешка и се връща елементът на страницата. Мога обаче физически да докосна елемента в приложението с пръст и той работи.

Има ли начин да се посочи някакъв вид z индекс или алтернативен начин за взаимодействие с елемента?

Забележка: Calabash 2.0.0.pre4 с хибридно приложение (йонно)

Благодаря

За съжаление елементът, с който се опитвам да взаимодействам, Е видим. Ето моето запитване:

query "webView css:'#btn_get_a_quote'"
[
    [0] {
             "center" => {
            "X" => 186.80419921875,
            "Y" => 538.7015104293824
        },
            "webView" => "<UIWebView: 0x154e6ed70; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x154e6d8c0>>",
           "nodeName" => "LI",
                 "id" => "btn_get_a_quote",
        "textContent" => "\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\tGet a Quote\n\t\t\t\t\t\n\t\t\t\t",
              "class" => "btn-icon in",
               "rect" => {
                   "x" => 186.8042,
              "height" => 67.1875,
                   "y" => 538.7015,
               "width" => 67.1875,
                "left" => 126.40625,
                 "top" => 426.69195556640625,
            "center_y" => 538.7015,
            "center_x" => 186.8042
        },
           "nodeType" => "ELEMENT_NODE"
    }
]

Ето моят кран:

tap "webView css:'#btn_get_a_quote'"
Getting: http://iphone6-27.local:37265/map {}
[
    [0] {
             "center" => {
            "X" => 186.80419921875,
            "Y" => 538.7015104293824
        },
            "webView" => "<UIWebView: 0x155534d90; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x15554d470>>",
           "nodeName" => "LI",
                 "id" => "btn_get_a_quote",
        "textContent" => "\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\tGet a Quote\n\t\t\t\t\t\n\t\t\t\t",
              "class" => "btn-icon in",
               "rect" => {
                   "x" => 186.8042,
              "height" => 67.1875,
                   "y" => 538.7015,
               "width" => 67.1875,
                "left" => 126.40625,
                 "top" => 426.69195556640625,
            "center_y" => 538.7015,
            "center_x" => 186.8042
        },
           "nodeType" => "ELEMENT_NODE"
    }
]

Докосването на елемента трябва да ви отведе до друга страница и работи, когато го правя физически.


person Nick Stalter    schedule 05.10.2015    source източник
comment
Как осъществявате достъп до елемента, който искате да докоснете? Използвате ли ID или индекс? Според моя опит Calabash работи гладко, когато елементът е видим, но когато елементите са скрити, трябва специално да получите достъп до него чрез id или индекс.   -  person ucsunil    schedule 05.10.2015
comment
Въпреки това няма z индекс в Calabash. Calabash е инструмент за тестване на UI. Няма да имате нужда от достъп до скрити елементи в потребителския интерфейс, тъй като те са били скрити с определена цел. Ако не се вижда, достъпът до него ще противоречи на парадигмата за автоматизирано тестване на потребителския интерфейс.   -  person ucsunil    schedule 05.10.2015
comment
Използвам командата query/tap като такава, пример за ios: query webView css:'#btn_log_in' и елементът се вижда на екрана.   -  person Nick Stalter    schedule 05.10.2015
comment
Бърза актуализация, смених телефона (започнах на iphone 5s - iOS 7.1, сега използвам iphone6, iOS 9.1) и новият телефон успя да докосне един от елементите, с които не можах да взаимодействам. Ще публикувам повече, когато разбера повече.   -  person Nick Stalter    schedule 05.10.2015
comment
Друга актуализация, преминах към Samsung S5, работещ с 5.0, и нямах проблеми при взаимодействието с елементите на страницата.   -  person Nick Stalter    schedule 06.10.2015


Отговори (1)


Опитвам се да взаимодействам с елемент на страницата, който е под друг елемент, но е скрит

Във вашия коментар казвате, че елементът се вижда на екрана. Какво имаш предвид под скрито?

"webView css:'#btn_log_in'"

Това ли е запитването? Ако не, можете ли да поставите действителната заявка? Екранна снимка също може да бъде полезна.

Що се отнася до вашия проблем, виждали ли сте API на WebView? Може би xpath или javascript заявка може да ви помогне?

person jmoody    schedule 06.10.2015