使用Selenium webdriver C#确认只读字段的值

时间:2018-01-22 06:00:44

标签: c# selenium nunit assert readonly

我正在使用带有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"));

任何帮助都表示赞赏.. !!

2 个答案:

答案 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"));