我正在尝试编写一个脚本来断言所讨论的文本字段是否不可编辑。我试图写一个验证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>
答案 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