t.me/atinfo_chat Telegram группа по автоматизации тестирования

В поле ввода не всегда вставляется значение целиком SendKeys

selenium
webdriver
Теги: #<Tag:0x00007f9c4d724548> #<Tag:0x00007f9c4d724408>

(Анастасия Теребова) #1

Заполняю поле ввода следующим образом:

WebDriver driver = new ChromeDriver();
WebElement element = driver.findElement(By.id("idInput"));
element .clear();
element .sendKeys("11111");

Но не всегда это заполнение отрабатывает корректно:
т.к. иногда значение в одном и том же поле ввода введено не целиком или вовсе остается пустым.

Как вариант решения - после заполнения ждать какое-то время и проверить значение в поле.

Подскажите, кто-нибудь сталкивался с подобной проблемой? Как ее можно решить?


(Valentin G ) #2

Похожая ситуация, только при использовании броузера IE11. Как вариант, можно попробовать использовать буффер обмена, вот пример на C#:

public static void SendValueFromClipboard(this IWebElement txtField, string value)
        {
            Clipboard.SetText(value);
            txtField.SendKeys(OpenQA.Selenium.Keys.Control + "v");
        }

(Vatslau) #3

js setValue? должно работать всегда


(Vladislav Kulasov) #4

Возможно у вас там скрипт на поле работает на проверку введеных данных. Тогда такое поле нужно посимвольно тестировать.


(Soleh Saidmuradov) #5

У нас на проекте была похожая ситуация, проблема была в том, что после загрузки страницы, через секунду полторы фокус (курсор) переходил на другое поле, а мы заполняли другое и оно часто заполнялось наполовину. Поэтому добавили ожидание js-ом этого поля.


(Svetlana P) #6

У меня была ситуация, когда мне надо было в поле ввода ввести адрес, и потом щелкнуть по выпадащему меню Google maps. И это меню не выпадало, потому что сильно быстро заполнялось поле. Попробуйте заполнить его двумя частями:
element .sendKeys(“111”);
element .sendKeys(“11”);
Возможно, сработает и в данном случае.