Получение данных с помощью Selenium - PullRequest
1 голос
/ 01 марта 2009

Я хочу получить рабочие часы в ближайших ко мне филиалах ScotiaBank.

Базовый URL: http://maps.scotiabank.com/

Я тогда,

Нажмите на радиобокс "Ветви".

Установите флажок «Открывать субботы».

Введите "B3H 1M7" (мой почтовый индекс) в поле поиска.

Нажмите кнопку поиска.

Нажмите на первый всплывающий результат (торговый центр Micmac).

Сохранение рабочих часов в виде переменной (называемой businessHours).

А теперь я застрял.

Как я могу экспортировать данные, которые я присвоил переменной, в текстовый файл или куда-нибудь еще, где я смогу просмотреть их позже? Я не уверен, возможно ли это вообще с Selenium, но если нет, подскажите, как мне это сделать?

Ниже приведен HTML-код текущего скрипта Selenium, который у меня есть.

<tr>
    <td>open</td>
    <td>/en/index.php</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>rb_branch</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>cb_saturday</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>input_address</td>
    <td>B3H 1M7</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>btn_search_address</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>result0</td>
    <td></td>
</tr>
<tr>
    <td>storeTextPresent</td>
    <td>Mon:    9:30 AM - 5:00 PM    Thu:    9:30 AM - 8:00 PM
<br />Tue:    9:30 AM - 5:00 PM    Fri:    9:30 AM - 5:00 PM
<br />Wed:    9:30 AM - 5:00 PM    Sat:    9:00 AM - 1:00 PM</td>
    <td>businessHours</td>
</tr>

Ответы [ 3 ]

1 голос
/ 01 марта 2009

Если вы хотите работать только с Selenium Core и / или IDE и хотите сохранить эту информацию, вы можете попробовать отправить ее в какой-либо бесплатный онлайн-сервис с помощью вызова javascript . Selenium может выполнить произвольный фрагмент JavaScript с помощью eval-вызова (пример здесь ).

Одним из возможных предложений будет учетная запись twitter (или другой бесплатный онлайн-сервис с простым API). Модификация букмарклета, которую Twitlet производит, может публиковать в Твиттере любую информацию, которую вы хотите.

Другим вариантом может быть документ Google или какой-либо другой онлайн-сервис заметок.

Если вам не нужен Selenium для сохранения информации, но вы хотите, чтобы она агрегировалась и отображалась в конце выполнения, вы можете хранить каждый набор рабочих часов в переменной, добавляя ее по ходу, а затем Ваше последнее действие - оценить javascript, который выведет всплывающее окно с результатами . Затем вы можете вручную использовать данные в окне предупреждения.

Просто некоторые идеи. Удачи.

Edit-

Вот пример сохранения значения и его извлечения вместе с выполнением произвольного JavaScript с помощью методов eval и runcript на главной странице Google:

<tr>
    <td>open</td>
    <td>/</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>q</td>
    <td>dog</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>btnG</td>
    <td></td>
</tr>
<tr>
    <td>storeValue</td>
    <td>q</td>
    <td>searchWord</td>
</tr>
<tr>
    <td>assertValue</td>
    <td>q</td>
    <td>${searchWord}</td>
</tr>
<tr>
    <td>assertEval</td>
    <td>alert(&quot;${searchWord}&quot;);</td>
    <td>null</td>
</tr>
<tr>
    <td>runScript</td>
    <td>alert(&quot;${searchWord}&quot;);</td>
    <td></td>
</tr>
<tr>
    <td>assertAlert</td>
    <td>dog</td>
    <td></td>
</tr>
1 голос
/ 01 марта 2009

Вот идея: если вы не можете записать в файл или в БД, вы, конечно, можете написать небольшое небольшое веб-приложение, чтобы селен вводил данные и нажимал Отправить там!

0 голосов
/ 28 сентября 2009

Вы можете экспортировать свой тест из Selenium IDE для использования с Selenium RC. Затем, используя выбранный вами язык программирования, вы можете записать файл или базу данных.

...