web-dev-qa-db-ja.com

Javaを使用してSelenium WebDriverの非表示フィールドにテキストを入力する方法

テスト自動化のためにJavaでWebDriverを使用しています。非表示になっている入力フィールドに次の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秒

誰かが隠しフィールドにテキストを書く/入力するのを手伝ってくれませんか?

18
user1554024

まず最初に、type属性の値をテキストとして非表示から変更する必要があります。 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");
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