问题
I am using WebDriver with Java for test automation. I have the following HTML code for input field which is hidden:
<input type="hidden" value="" name="body" id=":6b">
How to type something in hidden field in Selenium2 (WebDriver)? I have written code as:
driver.findElement(By.name("body")).sendKeys("test body");
But it was shown the following error: org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with Command duration or timeout: 30.04 seconds
Can anybody please help me to write/type some text in hidden field?
回答1:
First of all you have to change the value of type attribute as text from hidden. The following code using javascript would work for that:
jse.executeScript("document.getElementsByName('body')[0].setAttribute('type', 'text');");
Now, you are able to type on that text by using WebDriver. So, the overall code for typing with WebDriver using Java and Javascript as follows:
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);
来源:https://stackoverflow.com/questions/11858366/how-to-type-some-text-in-hidden-field-in-selenium-webdriver-using-java