Selenium C#:断言验证文本字段是否不可编辑

时间:2015-04-15 20:39:57

标签: c# selenium

我正在尝试编写一个脚本来断言所讨论的文本字段是否不可编辑。我试图写一个验证hidden =“true”,因为这是最终隐藏可编辑文本框的内容。我怎样才能验证这样的东西?这是我应该处理这种验证的方式吗?感谢您的回复。

这是html

<div id="ctl00_contentMain_sponsorInfo">
<fieldset>
    <legend>
        Referral Information
    </legend>
    <ol>
        <li>
            The name of your referrer is Name…
        </li>
        <li>
            <input id="ctl00_contentMain_sponsorUsername" class="textBig" type="text" hidden="true" style="width:270px;" req="false" max="30" value="Name" name="ctl00$contentMain$sponsorUsername"></input>
        </li>
    </ol>
</fieldset>
</div>

2 个答案:

答案 0 :(得分:1)

正如您所提到的,测试此方案的最佳方法是查看hidden attribute是否具有值true

IWebElement element = Driver.FindElement(By.Name("ctl00$contentMain$sponsorUsername"));
if (element.GetAttribute("hidden").Contains("true"))
{
    Assert.Pass("Your message");
}
  

注意:您必须确保元素存在。你可以使用像

这样的显式等待
var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementExists(By.CssSelector("something ")));
     

以获取属性。这个案例Selenium可以很好地工作,因为你没有与元素交互。

答案 1 :(得分:1)

WebDriver仅与可见元素进行交互。您可以使用JavaScriptExecutor

 IJavaScriptExecutor js = driver as IJavaScriptExecutor;
 string hiddenStatus = (string)js.ExecuteScript("return document.getElementById('ctl00_contentMain_sponsorUsername').hidden");

hiddenStatus将具有true / false