Как напечатать текст в скрытом поле в 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);