FindElement не возвращает текст элемента, если на самом деле в DOM - PullRequest
2 голосов
/ 06 октября 2011

Я использую веб-драйвер Selenium, но столкнулся с проблемой. Я использую KnockoutJS, чтобы привязать мой пользовательский интерфейс к данным с сервера. В моих тестах, когда я вызываю FindElement(By.Id("InputField")), он возвращает элемент в порядке, но, к сожалению, поле Text () пусто.

Когда я запускаю селектор Jquery в поле:

$("#InputField").val() это дает мне текст в поле ввода ок.

Когда я проверяю источник Html, в поле ввода нет значения, и я предполагаю, что это потому, что KnockoutJS связывает значение с полем ввода поздно.

Как заставить WebDriver правильно извлекать атрибуты, текст и т. Д. Из поля, а не только пустой текст?

1 Ответ

13 голосов
/ 06 октября 2011

Вместо использования свойства Text попробуйте использовать element.GetAttribute("value")

IWebElement element = _driver.FindElementById("InputField");
string value = element.GetAttribute("value");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...