selenium webelement是否可单击java

8ehkhllq  于 2021-08-20  发布在  Java
关注(0)|答案(3)|浏览(326)

所以没有一个 isClickable() selenium 的功能。然而,有一个问题 isEnabled() 这在大多数情况下都有效(与 isDisplayed() ),但并非总是如此。
我发现自己处于这样的境地。我有一个btn(由css选择器找到)是灰色的,不可点击,但我找不到任何方法来验证这一点( isEnabled 始终为true,并且始终显示)/元素本身没有与可单击的相同btn不同的属性或值。
我没有主意了,我试过了 try/catchexpectedConditions.elementToBeClickable(element) 但这也总是回到了现实。
有没有人能为我提供解决方案或其他方法?也许我可以验证css位(以前从未做过)?这是一个有效的Assert吗?
谢谢

jrcvhitl

jrcvhitl1#

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

cbwuti44

cbwuti442#

当按钮可用时,我看到了一个区别,

<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();
}
v8wbuo2f

v8wbuo2f3#

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   
}

相关问题