如何使用 selenium webdriver 检查按钮是不是可点击

Posted

技术标签:

【中文标题】如何使用 selenium webdriver 检查按钮是不是可点击【英文标题】:How to check if the button is clickable using selenium webdriver如何使用 selenium webdriver 检查按钮是否可点击 【发布时间】:2017-12-08 14:40:40 【问题描述】:

我正在尝试查找按钮元素是否可点击,但我无法使用 selenium webdriver 成功验证。

这是我验证元素是否可点击的代码

    boolean installAFile;

    String classValues = driver.findElement(by.XPATH("//button[contains(., 'Install a new file')]")).getAttribute("class");
    installAFIle = classValues.contains("iconbutton-button--clickable");

    return installAFIle;

这里是 html

<div>
<!-- react-text: 406 -->
test message 1
<!-- /react-text -->
<div class="iconbutton">
<button class="iconbutton-button iconbutton-button--clickable" type="button" 
tabindex="0">
<div class="iconbutton-button-label">Install a new file</div>
</button>
</div>
<!-- react-text: 410 -->
under File > Install.
<!-- /react-text -->
</div>

我不断收到以下验证消息: 没有这样的元素:无法定位元素:"method":"xpath","selector":"//button[contains(., 'Install a new file')]"

【问题讨论】:

您好尝试使用硒等待条件。请查看此链接***.com/questions/12858972/…enter link description here 这可能对***.com/a/38327476/6743203有帮助 在 xpath 中,字符串区分大小写。请检查该案例的字符串“安装新文件”。 @zen 感谢您的建议,我也实施了 te wait 但仍然没有运气 @SujaiKrishna link 始终是一个 LINK,它必须是可点击的。因此,您的问题对我来说毫无意义。您可以使用您尝试执行的确切用例和手动步骤来更新问题吗?谢谢 【参考方案1】:

元素 xpath 将是;

/html/body/div/div/button/div

或者

//button/div

或者

//div[contains(@class,'iconbutton-button-label')]

或者

//*[contains(text(), 'Install a new file')]

【讨论】:

【参考方案2】:

只需编写以下方法并在您想要检查元素是否可点击时调用它。也传递所需的参数。

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;
        
    

【讨论】:

以上是关于如何使用 selenium webdriver 检查按钮是不是可点击的主要内容,如果未能解决你的问题,请参考以下文章

如何使用selenium webdriver来判断一个网页加载完毕

Selenium & webdriver.io 如何使用 executeScript?

如何使用selenium webdriver来判断一个网页加载完毕

如何使用 C# 在 Selenium WebDriver (Selenium 2) 中最大化浏览器窗口?

如何在 ruby​​ 中使用 Selenium WebDriver (selenium 2.0) 客户端设置选项

如何在 Java 中使用 Selenium WebDriver (Selenium 2) 输入文本框?