Selenium webelement 可点击与否 JAVA

问题描述

所以 selenium 中没有 isClickable() 函数。然而,有一个 isEnabled() 大部分时间都有效(与 isdisplayed() 结合使用),但并非总是如此。

我发现自己处于这种情况。我有一个 btn(由 css 选择器找到),它变灰且不可点击,但我找不到任何方法来验证这一点。 (isEnabled 始终为真,并且始终显示)/ 元素本身没有与可点击的相同 btn 不同的属性或值。

我没主意了,我尝试将 try/catchexpectedConditions.elementToBeClickable(element) 一起使用,但结果总是如此。

有没有人为我提供解决方案或其他方式? 也许我可以验证 CSS 位(以前从未做过)?这是一个有效的断言吗?

谢谢

解决方法

灰色元素通常具有 disabled 属性,而启用的元素是 enabled 或只是缺少 disabled 或类似的东西。在大多数情况下,这可以是一个明确的指示。

,

我看到按钮可用时的不同之处,

<input class="form-control qty" name="qty" type="number" value="1" min="1">

您可以使用以下代码块来检查何时单击:

代码:

try {
    if (driver.findElements(By.xpath("//input[@name='qty' and @class='form-control qty' and @type='number']")).size()  > 0 ) {
        System.out.println("This means button is available to click");
        // code to click on button should be written here
    }
    else {
        System.out.println("Button must be greyed out,if you are seeing this");
        // do some stuff to make button available
    }
}
catch(Exception e) {
    System.out.println("Check the code again,looks like some issue. ");
    e.printStackTrace();
}
,
Have you check this way  

代码:

WebElement element =(WebElement)((JavascriptExecutor)driver)
.executeScript("return document.querySelector('JS Path')");
    
if(element.isEnabled() && element.isDisplayed()){
element.click();
}else {
    //statement for not displayed   
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...