Sunil Kumar
Sunil Kumar

Reputation: 73

how to get hidden values in webdriver using javascript

There's a hidden input field in which I'm trying to insert a specific date value. The field originally produces a value, from which a user can select an appropriate value. The page's source code looks like this:

<div id="change_img">
  <img width="80" height="30" border="1" src="http://jntuh.ac.in/results/images/CaptchaSecurityImages.php?width=100&height=50&characters=5&code=ryyrh">
  <br>
  <input id="code" type="hidden" value="ryyrh" name="code">
</div>

Upvotes: 5

Views: 17966

Answers (3)

cruisepandey
cruisepandey

Reputation: 29362

Solution in Python:

script = "return document.getElementById('code').getAttribute('value');";
print(driver.execute_script(script))

Solution in C#:

string script = "return document.getElementById('code').getAttribute('value');";
string value = ((IJavaScriptExecutor)driver).ExecuteScript(script).ToString();

Upvotes: -1

jibbs
jibbs

Reputation: 762

I tested this solution in C# and it works. I am then able to parse the returned string to find and verify what I need.

http://yizeng.me/2014/04/08/get-text-from-hidden-elements-using-selenium-webdriver/

So in the example in the question you would get the innerHTML of the visible parent "change_img" element which will include the hidden element.

Upvotes: 1

JacekM
JacekM

Reputation: 4099

Use WebElement's getAttribute method. In your case it will be:

WebElement hiddenInput = driver.findElement(By.id("code"));
String value = hiddenInput.getAttribute("value");

If for any reason you need to do it with javascript (your question specifically asked for js) then this code should work:

String script = "return document.getElementById('code').getAttribute('value');";
String value = ((JavascriptExecutor) driver).executeScript(script).toString();

Upvotes: 9

Related Questions