user1242967
user1242967

Reputation: 1290

Getting current text of input field using Selenium

Let's say I have this input element:

<input id="email" value="[email protected]">

I execute this piece of code:

var emailInputField = driver.FindElement(By.Id(email));
var email = emailInputField.GetAttribute("value");
emailInputField .InputField.Clear();
var empty = emailInputField.GetAttribute("value");

I would expect variable empty to be empty but it contains same text as email since I cleared the text. I realize that value attribute doesn't get synchronized with entered text, so my question is, how do I find out what text currently is in the text box?

Upvotes: 4

Views: 11157

Answers (2)

Cathal
Cathal

Reputation: 1338

Because you have already selected the element and assigned emailInputField to it then empty is going to refer to that. If you re-assign emailInputField after the clear and then get the value it should be empty. So :

var emailInputField = driver.FindElement(By.Id(email));
var email = emailInputField.GetAttribute("value");
emailInputField .InputField.Clear();
var empty = driver.FindElement(By.Id(email)).GetAttribute("value");

Upvotes: 9

Vishal Jagtap
Vishal Jagtap

Reputation: 896

var emailInputField = driver.FindElement(By.Id(email));
var email = emailInputField.GetAttribute("value");
emailInputField.InputField.Clear();
var empty = emailInputField.GetAttribute("value");

In 3rd line your making mistake, try above one

Upvotes: 0

Related Questions