Selenium IDE - захват текущей даты - PullRequest
7 голосов
/ 06 октября 2011

Я хотел бы знать, что с селеном есть способ получить текущую дату, месяц, год, так как приложение, которое я использую, имеет отдельные поля даты, месяца, года, которые нам нужно ввести вручную. У меня проблема здесь Это тестовый случай будет принимать только дату <= 31 дней в будущем и не будет принимать какие-либо даты в прошлом. так что, если у меня есть способ получить текущую дату, месяц, год (числовые значения), которые будут полезны </p>

например

  <tr>
        <td>type</td>
        <td>form1:txtCoverDateDay</td>
        <td>02</td>
    </tr>
    <tr>
        <td>type</td>
    <td>form1:txtCoverDateMonth</td>
    <td>11</td>
</tr>
<tr>
    <td>type</td>
    <td>form1:txtCoverDateYear</td>
    <td>2011</td>
</tr>

1 Ответ

9 голосов
/ 07 октября 2011

использовать storeEval

Пример, приведенный ниже, представляет собой полностью работающий тест на селен, который точно соответствует вашим требованиям. Чтобы запустить его, откройте IDE, щелкните вкладку «Источник» в главном окне и вставьте код между тегом <tbody>

<tr>
    <td>open</td>
    <td>http://www.plus2net.com/php_tutorial/date-selection.php</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>new Date().setDate( new Date().getDate() + 31);</td>
    <td>date</td>
</tr>
<tr>
    <td>echo</td>
    <td>${date}</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>d=new Date( new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 31); d=d.getFullYear()</td>
    <td>year</td>
</tr>
<tr>
    <td>type</td>
    <td>name=year</td>
    <td>${year}</td>
</tr>
<tr>
    <td>echo</td>
    <td>${year}</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>d=new Date( new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 31); d=d.getMonth() + 1</td>
    <td>month</td>
</tr>
<tr>
    <td>select</td>
    <td>name=month</td>
    <td>value=${month}</td>
</tr>
<tr>
    <td>echo</td>
    <td>${month}</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>d=new Date( new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 31).getDate(); d= d.toString().length == 1 ? &quot;0&quot; + d : d;</td>
    <td>day</td>
</tr>
<tr>
    <td>select</td>
    <td>name=dt</td>
    <td>label=${day}</td>
</tr>
<tr>
    <td>echo</td>
    <td>${day}</td>
    <td></td>
</tr>

Я добавил в javascript, чтобы вернуть дату 31 день в будущем.

Вы также можете использовать комбинацию runScript и storeEval, чтобы получить практически все со страницы.
Вопрос, который я задал, демонстрирует идею

Загрузка внешнего файла js, содержащего полезные тестовые функции в селене

Любые другие вопросы добавьте комментарий, и я буду рад помочь:)

См. Комментарий @ icc97, чтобы добавить нулевое заполнение к датам.

...