Rails3 Тестирование Google Maps с использованием селена

Я пытаюсь протестировать приложение карт Google с помощью Rails3. Я использую огурец с капибарой и селеном для тестирования JavaScript. У меня есть карта, на которой я жду загрузки карт Google, а затем отправляю запрос ajax на свой сервер, где я получаю местоположения, которые я вставляю на карту. Мне интересно, можно ли с селеном дождаться загрузки карт Google, завершения вызова ajax на моем сервере и размещения маркера внутри карты. Другая проблема - как выбрать этот маркер на картах Google. Есть ли какие-нибудь селекторы?

Или мне следует пойти другим путем и использовать среду тестирования JS, такую ​​как Jasmine, чтобы проверить, загружены ли мои классы и так далее. У меня нет опыта работы с Jasmine, так можно ли протестировать карты Google?

Может быть, кто-то знает решение, или подсказку, если это невозможно, или обходной путь, или ...;)

[ОБНОВЛЕНИЕ 1]

Я узнал, как выбирать маркеры на картах Google. Если вы посмотрите тесты на селен в Google , вы сможете узнать, что они делают. Например, выбор маркера:

waitForElementPresent   xpath=//img[contains(@src,'marker')]

Но здесь возникает следующая проблема. Как выбрать конкретный маркер? Есть ли способ внутри javascript google maps API присвоить ему идентификатор, чтобы я мог использовать # marker_1 , # marker_2 ...?

И еще одна странная вещь То есть такая функция, как wait_for_element или wait_for_condition , недоступна в моих определениях шагов для огурца. Используются ли тесты google selenium с такой собственной функцией, как эта waitForElementPresent ? Или это стандартные селеновые функции? Я нашел много сообщений, где они всегда используют что-то вроде

selenium.wait_for_condition
selenium.wait_for_element

or

@selenium.wait_for_condition
...

В моих определениях шагов selenium и @selenium var a nil. Как я могу получить доступ к этим методам? Я также нашел этот пост , но он от октября '08, так что я думаю, что должно быть лучшее решение (кстати, это решение работает на первый взгляд).

Как это страница , они дают обзор нескольких методов селена, как ждать условия или элемента. Это все еще присутствует? Как я могу использовать эту функцию?

Как и на этой странице , они дают обзор нескольких методов селена, как ждать условия или элемента. Это все еще присутствует? Как я могу использовать эти функции?

Как и на этой странице , они дают обзор нескольких методов селена, как ждать условия или элемента. Это все еще присутствует? Как я могу использовать эти функции?

[ОБНОВЛЕНИЕ 2]

Черт возьми, я обнаружил, что тесты на селен, о которых я упоминал выше, предназначены для V2 карт Google, а не для V3. Я пробовал с

wait_until { page.has_xpath?("//img[contains(@src,'marker')]") }

, но не работает. Маркер виден на карте, но я получаю ошибку тайм-аута, потому что с этим селектором XPath он не найден. Мне интересно, можно ли вообще выбрать маркер из DOM.

Я также пытался назначить дополнительный атрибут для маркера при его создании:

// marker is the marker returned by google maps after adding it to the map
$(marker).attr('id', "marker_1");

Но когда я пытаюсь получить к нему доступ с помощью jQuery селектор $ ("# marker_1") , не находит. Итак, решения пока нет.

9
задан ROMANIA_engineer 24 August 2017 в 21:28
поделиться