Reputation: 1290
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
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
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