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

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

Есть ли способ сослаться на какой-то индекс z или альтернативный способ взаимодействия с элементом?

Примечание: Calabash 2.0.0.pre4 с гибридным приложением (ionic)

Спасибо

Извините, элемент, с которым я пытаюсь взаимодействовать, виден. Вот мой запрос:

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
Как вы получаете доступ к элементу, который хотите нажать? Вы используете идентификатор или индекс? По моему опыту, Calabash работает гладко, когда элемент виден, но когда элементы скрыты, вы должны специально обращаться к ним по идентификатору или индексу.   -  person ucsunil    schedule 05.10.2015
comment
Однако в Calabash нет индекса z. Calabash — это инструмент для тестирования пользовательского интерфейса. Вам не нужно будет получать доступ к скрытым элементам в пользовательском интерфейсе, поскольку они были скрыты для определенной цели. Если он не виден, доступ к нему будет противоречить парадигме тестирования автоматизации пользовательского интерфейса.   -  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