如何断言文本框是启用还是禁用

时间:2018-10-08 16:55:10

标签: selenium selenium-webdriver webdriver isenabled

我想断言特定的文本框是禁用还是启用。下面是HTML。禁用文本框和启用文本框之间的区别仅是靠disabled属性。

disabled text box HTML:
     <input controlid="txtIPAddress" class="textfield form-control servicefield invItem_dynamic_validation valid" id="OrderProperties_4__Value" isdisabled="true" name="OrderProperties[4].Value" style="display:" type="text" value="" disabled="">

enagled text box HTML- 
<input controlid="txtIPAddress" class="textfield form-control servicefield invItem_dynamic_validation valid" id="OrderProperties_4__Value" isdisabled="true" name="OrderProperties[4].Value" style="display:" type="text" value="">

我尝试了element.isEnabled()element.isEnabled()方法都没有用。 任何帮助,不胜感激!

2 个答案:

答案 0 :(得分:1)

isEnabled()

根据documentation isEnabled() 方法的定义为:

boolean isEnabled()

Description: 
    Is the element currently enabled or not? This will generally return true for everything but disabled input elements.

Returns:
    True if the element is enabled, false otherwise.

因此,您的 element.isEnabled() 代码试用版非常适合检索状态,无论元素是否启用或未提供 唯一标识您在问题内提供的节点

替代

或者,您可以尝试使用以下解决方案来验证是否存在没有属性 已禁用的元素。

try {
    driver.findElement(By.xpath("//input[@class='textfield form-control servicefield invItem_dynamic_validation valid' and not(disabled)][@controlid='txtIPAddress']"));
    System.out.println("Element is enabled");
} catch (NoSuchElementException e) {
    System.out.println("Element is not enabled");
}

答案 1 :(得分:0)

要断言文本框可编辑,我们可以使用 isEnabled() 函数。 请参阅下面的示例,

boolean anytextfield = driver.findElement(By.xpath("respectivexpath")).isEnabled();
Assert.assertEquals(anytextfield,true);