除非实际在DOM中,否则FindElement不返回元素文本

时间:2011-10-06 16:08:50

标签: selenium webdriver knockout.js

我正在使用Selenium的webdriver,但我遇到了一个问题。 我正在使用KnockoutJS将我的UI绑定到服务器上的数据。在我的测试中,当我调用FindElement(By.Id("InputField"))时,它返回元素ok,但遗憾的是Text()字段为空。

当我在字段上运行Jquery选择器时:

$("#InputField").val()它为我提供了输入字段中的文本确定。

当我检查Html源代码时,输​​入字段中没有值,我想这是因为KnockoutJS后来将值绑定到输入字段。

如何让WebDriver正确地从字段中提取属性,文本等而不仅仅是空文本?

1 个答案:

答案 0 :(得分:13)

请尝试使用Text

,而不是使用element.GetAttribute("value")属性
IWebElement element = _driver.FindElementById("InputField");
string value = element.GetAttribute("value");