Using Selenium Web Driver to retrieve value of a HTML input
In the HTML of a webapp there is the following code
<input type="text" name="prettyTime" id="prettyTime" class="ui-state-disabled prettyTime" readonly="readonly">
What is actually shown on the page is a string displaying the time.
In Selenium Web Driver, I have a WebElement
object referring to the <input>
using
WebElement timeStamp = waitForElement(By.id("prettyTime"));
I want to get the value of the WebElement
, or, in other words, what is printed on the page. I tried all the WebElement
getters and nothing has been retrieving the actual value that the user sees. Any help? Thanks.
Solution 1:
Try element.getAttribute("value")
The text
property is for text within the tags of an element. For input elements, the displayed text is not wrapped by the <input>
tag, instead it's inside the value
attribute.
Note: Case matters. If you specify "Value", you'll get a 'null' value back. This is true for C# at least.
Solution 2:
You can do like this :
webelement time=driver.findElement(By.id("input_name")).getAttribute("value");
this will give you the time displaying on the webpage.
Solution 3:
With selenium 2,
i usually write it like that :
WebElement element = driver.findElement(By.id("input_name"));
String elementval = element.getAttribute("value");
OR
String elementval = driver.findElement(By.id("input_name")).getAttribute("value");