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

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

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

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

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

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

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

2 ответов


прежде всего вам нужно изменить значение атрибута type как текст из hidden. Для этого будет работать следующий код с использованием 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");

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);