Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Полная замена текста в текстовом поле, Selenium ide


(Kristall89) #1

Господа, у меня очень тупой новичковый вопрос, но так получилось, что с автотестированием знакомлюсь буквально на ходу. Пишу пока тупо xmlем, программирования не знаю от слова "совсем" пока, увы.

Есть задача - проверить корректность ввода текста в текстовые поля в профиле (имя, фамилия etc.). При этом текст вводится несколько раз подряд, т.к. прогоняются разные верные-неверные варианты. Вопрос: какую команду на ввод текста тут использовать наиболее корректно?

type - вводится, но не кликается кнопка на сохранение изменений.

sendKey - сохраненный ранее текст не стирается и вводится заново, что приводит к ошибкам.

TypeKey - заменяет текст, но при многократном вводе почему-то не вписывает вообще ничего, текст из полей просто стирается.

Собственно, кто виноват, что делать и как это обойти?

Пока решила вот так:

    <td>sendKeys</td>
    <td>id=family</td>
    <td>фамилия1</td>
</tr>
<!--Заполнили фамилию с цифрой-->
<tr>
    <td>waitForTextPresent</td>
    <td>Фамилия должна состоять из русских букв без пробелов. Допускается написание через дефис</td>
    <td></td>
</tr>
<tr>
    <td>verifyTextPresent</td>
    <td>Фамилия должна состоять из русских букв без пробелов. Допускается написание через дефис</td>
    <td></td>
</tr>
<!--Появляется сообщение об ошибке-->
<tr>
    <td>clickAndWait</td>
    <td>link=pusto</td>
    <td></td>
</tr>
<tr>
    <td>sendKeys</td>
    <td>id=family</td>
    <td>фамилияa</td>
</tr>
<!--Заполнили фамилию с латинской буковй-->
<tr>
    <td>waitForTextPresent</td>
    <td>Фамилия должна состоять из русских букв без пробелов. Допускается написание через дефис</td>
    <td></td>
</tr>
<tr>
    <td>verifyTextPresent</td>
    <td>Фамилия должна состоять из русских букв без пробелов. Допускается написание через дефис</td>
    <td></td>
</tr>
<!--Появляется сообщение об ошибке-->
<tr>
    <td>clickAndWait</td>
    <td>link=pusto</td>
    <td></td>
</tr>
<tr>
    <td>sendKeys</td>
    <td>id=family</td>
    <td>фами лия </td>
</tr>
<!--Заполнили фамилию с пробелом-->
<tr>
    <td>waitForTextPresent</td>
    <td>Фамилия должна состоять из русских букв без пробелов. Допускается написание через дефис</td>
    <td></td>
</tr>
<tr>
    <td>verifyTextPresent</td>
    <td>Фамилия должна состоять из русских букв без пробелов. Допускается написание через дефис</td>
    <td></td>
</tr>
<!--Появляется сообщение об ошибке-->
<tr>
    <td>clickAndWait</td>
    <td>link=pusto</td>
    <td></td>
</tr>

То есть, наверное, понятно - после каждой проверки следует клик на ссылку профиля и обновление страницы.

Минусы - текст все равно не стирается, просто в качестве дефолтных фио на тесте стоит одна буква. Но это косяк.

- Лишние действия, удлиннение кода, я не программер, но понимаю, что это не гуд.

- Вообще это извращение, которое мне чисто эстетически не нравится.

Собственно, кто виноват, кроме моих кривых рук, и как решить ситуацию менее извратным путем?


(Vitalii) #2

Если можно приведите ссылку на сайт. В таких случаях я использую две команды. По одной срабатывает ввод текста, а вторая делает срабатывание введенного текста (для активации кнопки сохранения). В моем случае это typeKeys и type


(Kristall89) #3

Кажется, уже разобралась :) Примерно аналогичным способом.
У меня получилось type и click, все работает, как нужно.