2017-02-17 111 views
0

我必须检查文本框是否只接受特定数量的字符。如果字符超过,它不会给出任何错误,但只能将文本转成红色。另一个文本框不接受其他字符。如何验证文本框在两种情况下都不会接受更多字符?如何使用Java在Selenium WebDriver中检查元素是否可点击

我有一个选择,检查页面上可见的'保存'按钮是否可点击。我如何使用Java中的Selenium WebDriver执行此操作?

+0

仅供参考,'可点击'是指硒语言的可见性和可用性。禁用的按钮仍然是可点击的,因为它将注册鼠标点击,即使它不会启动任何操作。如答案所示,您的问题实际上是否启用了已知的现有和可见元素。你的问题仍然是可以理解和有效的,这些定义只会帮助你在未来寻找相当简单的答案:) – KjetilNordin

回答

0

您可以使用isEnabled()来检查元件是否启用。

driver.findElement(By.xpath("//path/to/element").isEnabled(); 

如果按钮是可点击的,这将返回true

0

如果通过点击你的意思是没有禁用,你可以使用WebElement.isEnabled()

关于不接受附加字符的文本输入,如果您想检测该字符,则取决于该约束如何执行。例如,如果通过maxlength attribute完成,则可以尝试从input元素(WebElement.getAttribute(String))中读取该属性。在这种情况下,您将事先知道可以发送多少个字符到文本框。

关于将文本转为红色的文本输入,如果您想要检测到您应该先查明文本如何变为红色;可能是通过将CSS classstyle属性设置为input元素来实现的,在这种情况下,您可以尝试从元素中读取该属性。

+0

我能够获得maxlength属性。感谢您的建议。但是,如何验证文本框不接受超过maxlength的字符。当我使用driver.findelement(By.xpath(“xpath_value”))。length()时,它给我输入字符串的总长度大于maxlength并且测试用例失败。 – user3190414

+0

您可能意指'driver.findElement(By.xpath(“xpath_value”))。getText()。length()'。然而,我建议读取'maxlength'属性的目的是,一旦你知道该值是文本框将接受的字符数量。现在我没有测试'maxlength'属性是否受到浏览器的支持,但我肯定认为它是,这意味着我会相信,如果我读取的“maxlength”是100,那么文本框将不会接受超过100个字符。您是否需要测试该字段是否设置为接受最多N个字符,或者是否确实符合该设置? – SantiBailors

1

只要编写下面的方法并在每次想检查元素是否可点击时调用它。还要传递必要的参数。

public static boolean isClickable(WebElement el, WebDriver driver) 
    { 
     try{ 
      WebDriverWait wait = new WebDriverWait(driver, 6); 
      wait.until(ExpectedConditions.elementToBeClickable(el)); 
      return true; 
     } 
     catch (Exception e){ 
      return false; 
     } 
    } 
相关问题