web-dev-qa-db-fra.com

Comment taper du texte dans un champ caché dans Selenium WebDriver en utilisant Java

J'utilise WebDriver avec Java pour l'automatisation des tests. J'ai le code HTML suivant pour le champ de saisie qui est masqué:

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

Comment taper quelque chose dans un champ caché dans Selenium2 (WebDriver)? J'ai écrit du code comme:

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

Mais l'erreur suivante a été affichée: org.openqa.Selenium.ElementNotVisibleException: l'élément n'est pas actuellement visible et ne peut donc pas interagir avec la durée ou le délai d'expiration de la commande: 30,04 secondes

Quelqu'un peut-il m'aider à écrire/taper du texte dans un champ caché?

18
user1554024

Tout d'abord, vous devez modifier la valeur de l'attribut type en tant que texte de masqué. Le code suivant utilisant javascript fonctionnerait pour cela:

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

Maintenant, vous pouvez taper ce texte à l'aide de WebDriver. Ainsi, le code global pour taper avec WebDriver en utilisant Java et Javascript comme suit:

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");
23
Ripon Al Wasim
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);
4
Vikas