2015-07-16 2 views
3

Допустим, у меня есть этот элемент ввода:Получение тока текст в поле ввода с использованием Селен

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

я выполнить этот кусок кода:

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

Я бы ожидать переменную пустой быть пусто, но он содержит тот же текст, что и , по электронной почте, так как я очистил текст. Я понимаю, что атрибут value не синхронизируется с введенным текстом, поэтому мой вопрос заключается в том, как узнать, какой текст в настоящее время находится в текстовом поле?

ответ

5

Поскольку вы уже выбрали элемент и назначен emailInputField к нему, то пусто будет относиться к этому. Если вы повторно назначили emailInputField после очистки, а затем получите значение, оно должно быть пустым. Итак:

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

В 3-й строке вашей решений ошибка, попробуйте над одним

+0

Извините, я допустил ошибку при написании этого примера. Я отредактировал оригинальный пост. – user1242967

Смежные вопросы