我正在使用带有NUnit框架的Selenium webdriver,我无法在html表单上断言只读文本字段。 Selenium能够通过“Id”找到元素。但无法读取元素中的文本并返回空字符串,我的断言失败。
以下是应用程序的代码块 -
<td nowrap="" colspan="2">
<input readonly="" tabindex="-1" class="readonly" type="text"
onfocus="gcurrObj=this;JS_FieldFocus(this, 'frmDetails')"
onchange="JS_FieldChange(this, 'frmDetails')" id="txtAccountName"
name="undefined" value="James Bond" size="60"
style=""></td>
我使用以下代码阅读,但selenium返回一个空白字符串
var AccName = driver.FindElement(By.Id("txtAccountName"));
Assert.That(AccName.Text.Contains("James"));
任何帮助都表示赞赏.. !!
答案 0 :(得分:3)
文本字段中的文字不属于WebElement
,您无法使用Text
属性获取该文字。要获得它,您需要使用value
属性
Assert.That(AccName.GetAttribute("value").Contains("James"));
答案 1 :(得分:0)
返回空白string
背后可能存在多种原因。您可以获取唯一标识该元素的Locator Strategy
的帮助,然后使用Assert
,如下所示:
var AccName = driver.FindElement(By.XPath("//input[@class='readonly' and @id='txtAccountName']")).GetAttribute("value");
Assert.That(AccName.Contains("James"));