如何使用Java在Selenium WebDriver的隐藏字段中键入一些文本

我正在使用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

首先,您必须将类型属性的值更改为隐藏文本。下面使用javascript的代码可以做到这一点:

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

现在,您可以使用WebDriver在该文本上键入内容。因此,使用Java和Javascript在WebDriver中键入隐藏字段的整体代码如下:

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