У меня есть модальное окно с некоторыми текстовыми полями в нем.Я использовал для ввода текста, используя className, чтобы получить все поля формы и индексирования текстовых полей.В настоящее время модал изменился, и dev предоставил мне идентификатор для каждой коробки.Я пытаюсь просто ввести текст и нажать кнопку «Отправить», но иногда случается, что строка вставляется частично.
Допустим, я хочу ввести строку "System1", но иногда WebDriver вводит "Sys" или "Sy" и т. Д., А затем выполняет щелчок
. Я пыталсянайдите элемент с помощью идентификатора, XPATH ... , но дело в том, что я могу видеть, как текст находится на поле, поэтому элемент расположен правильно
Есть и другая проблема.Чтобы убедиться, что текстовое поле содержится после метода .senKeys (), я помещаю и утверждаю, что якобы получает текст из текстового поля через метод .getText () и сравнивает его со строкой, которую я передаю методу main, но яНа этом этапе я получаю нулевое значение, и я вижу, как функционально WebDrivers вводит что-то, завершено или нет. Обратите внимание, что я использую один и тот же объект WebElement для обоих методов .sendKeys () и .getText ()
Вот код, который я запускаю, простой AF:
//Locating the TextBox
@FindBy(how = How.ID, using = "text")
public WebElement nameField;
public void introducirEnCampoNombre(String name) {
//nameField.clear();
nameField.sendKeys(name);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String xpectedString = nameField.getText();
Assert.assertEquals(name, xpectedString);
}
Вот соответствующий код HTML:
<form id="systemForm" action="/ik-conf/systemAction/save" method="POST">
<input id="id" name="id" type="hidden" value="">
<input id="parentNode.id" name="parentNode.id" type="hidden" value="1">
<div class="row">
<div class="left lv-text-label">
<label for="text" class="right-label inline">Nombre(*):</label>
</div>
<div class="right lv-text-input">
<input id="text" name="text" autofocus="autofocus" validation="/ik-conf/system/nameValidation" class="ikconf-fieldset width_100x100" type="text" value="">
</div>
</div>
<div class="row">
<div class="left">
<label for="description" class="right-label inline">Descripción:</label>
</div>
<div class="right">
<textarea id="description" name="description" style="margin-bottom:0px;" class="width_100x100 z-label" rows="3" cols="40"></textarea>
</div>
</div>
Итак, как я сказал выше, код идет для кнопки отправки(который находится в следующем методе), прежде чем строка будет вставлена правильно.При отладке я могу проверить, что строка правильная, а затем - вторая проблема.Я пытаюсь снова найти тот же элемент с другим именем ВНУТРИ метода, но с тем же результатом, .getText () возвращает меня null
Надеюсь, что кто-то может пролить немного света сюда.
Заранее спасибо