Невозможно отправить ключи в поле ввода номера с помощью Selenium Java - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть вход в форму I sh для тестирования с использованием Selenium. У меня есть форма ввода типа номер, как показано ниже:

<input required type="number" class="form-control" id="number" name="number" placeholder="Number" step="1" min="0" max="4">

I wi sh, чтобы проверить эту форму с помощью Selenium Chrome Driver. У меня есть следующий код

WebElement number = driver.findElement(By.id("number"));
number.sendKeys("2");

Я также пытался

WebElement number = driver.findElement(By.id("number"));
int numberInt = 2;
number.sendKeys(Integer.toString(numberInt));

Но получить следующую ошибку и трассировки стека:

at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285)
at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:106)

Любые идеи, как я могу отправить значение 2 в мое поле ввода?

1 Ответ

0 голосов
/ 15 апреля 2020

Ваш пост не содержит информации о том, с каким именно исключением вы столкнулись. Без этого мы могли бы только догадываться, в чем проблема. Если вы используете Java и Selenium, код Javascript в конце стоит попробовать. Одним из способов вы можете ввести номер (формат). Sendkeys принимает только символы, нет перегруженного метода, который принимает числа.

        driver.get("https://www.google.com");
        WebElement searchElement = driver.findElement(By.cssSelector("input[name='q']"));
        //standard sendkeys
        searchElement.sendKeys("123");
        searchElement.clear();

        //using actions class
        Actions action = new Actions(driver);
        action.moveToElement(searchElement).click().sendKeys("123").sendKeys("").build().perform();

        //use javascript, number is entered
        JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
        jsExecutor.executeScript("arguments[0].value = 456;", searchElement);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...