Как напечатать текст в скрытом поле в Selenium WebDriver с помощью Java

Я использую WebDriver с Java для автоматизации тестирования. У меня есть следующий код HTML для скрытого поля ввода:

<input type="hidden" value="" name="body" id=":6b">

Как ввести что-то в скрытое поле в Selenium2 (WebDriver)? Я написал код как:

driver.findElement(By.name("body")).sendKeys("test body");

Но было показано следующее сообщение об ошибке: org.openqa.selenium.ElementNotVisibleException: элемент в настоящее время не виден и поэтому не может взаимодействовать с Длительность или тайм-аут команды: 30.04 секунд

Может ли кто-нибудь помочь мне написать/ввести текст в скрытом поле?

Ответ 1

Прежде всего, вы должны изменить значение атрибута type как текст из скрытого. Следующий код, использующий javascript, будет работать для этого:

jse.executeScript("document.getElementsByName('body')[0].setAttribute('type', 'text');");

Теперь вы можете ввести текст, используя WebDriver. Итак, общий код для ввода с помощью WebDriver с использованием Java и Javascript:

WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.getElementsByName('body')[0].setAttribute('type', 'text');");
driver.findElement(By.xpath("//input[@name='body']")).clear();
driver.findElement(By.xpath("//input[@name='body']")).sendKeys("Ripon: body text");

Ответ 2

WebDriver driver=new FirefoxDriver();
driver.get("http://localhost/login.do");
driver.manage().window().maximize();
RemoteWebDriver r=(RemoteWebDriver) driver;
String s1="document.getElementById('username').value='admin'";
r.executeScript(s1);