我必须检查文本框是否只接受特定数量的字符。如果字符超过,它不会给出任何错误,但只能将文本转成红色。另一个文本框不接受其他字符。如何验证文本框在两种情况下都不会接受更多字符?如何使用Java在Selenium WebDriver中检查元素是否可点击
我有一个选择,检查页面上可见的'保存'按钮是否可点击。我如何使用Java中的Selenium WebDriver执行此操作?
我必须检查文本框是否只接受特定数量的字符。如果字符超过,它不会给出任何错误,但只能将文本转成红色。另一个文本框不接受其他字符。如何验证文本框在两种情况下都不会接受更多字符?如何使用Java在Selenium WebDriver中检查元素是否可点击
我有一个选择,检查页面上可见的'保存'按钮是否可点击。我如何使用Java中的Selenium WebDriver执行此操作?
您可以使用isEnabled()
来检查元件是否启用。
driver.findElement(By.xpath("//path/to/element").isEnabled();
如果按钮是可点击的,这将返回true
。
如果通过点击你的意思是没有禁用,你可以使用WebElement.isEnabled()
。
关于不接受附加字符的文本输入,如果您想检测该字符,则取决于该约束如何执行。例如,如果通过maxlength attribute完成,则可以尝试从input
元素(WebElement.getAttribute(String)
)中读取该属性。在这种情况下,您将事先知道可以发送多少个字符到文本框。
关于将文本转为红色的文本输入,如果您想要检测到您应该先查明文本如何变为红色;可能是通过将CSS class
或style
属性设置为input
元素来实现的,在这种情况下,您可以尝试从元素中读取该属性。
我能够获得maxlength属性。感谢您的建议。但是,如何验证文本框不接受超过maxlength的字符。当我使用driver.findelement(By.xpath(“xpath_value”))。length()时,它给我输入字符串的总长度大于maxlength并且测试用例失败。 – user3190414
您可能意指'driver.findElement(By.xpath(“xpath_value”))。getText()。length()'。然而,我建议读取'maxlength'属性的目的是,一旦你知道该值是文本框将接受的字符数量。现在我没有测试'maxlength'属性是否受到浏览器的支持,但我肯定认为它是,这意味着我会相信,如果我读取的“maxlength”是100,那么文本框将不会接受超过100个字符。您是否需要测试该字段是否设置为接受最多N个字符,或者是否确实符合该设置? – SantiBailors
只要编写下面的方法并在每次想检查元素是否可点击时调用它。还要传递必要的参数。
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;
}
}
仅供参考,'可点击'是指硒语言的可见性和可用性。禁用的按钮仍然是可点击的,因为它将注册鼠标点击,即使它不会启动任何操作。如答案所示,您的问题实际上是否启用了已知的现有和可见元素。你的问题仍然是可以理解和有效的,这些定义只会帮助你在未来寻找相当简单的答案:) – KjetilNordin