如何使用Selenium检查元素是否可单击-使用Javascript

时间:2018-07-11 15:12:07

标签: javascript selenium selenium-webdriver

在我的应用程序中,按钮有时会被吐司遮住。当我尝试使用Selenium-Webdriver单击此类按钮时,出现以下错误:

(node:11281) UnhandledPromiseRejectionWarning: WebDriverError: unknown error: Element <button class="md-raised md-primary md-button md-ink-ripple" type="button" ng-transclude="" id="saveButton" ng-click="saveItem($event)">...</button> is not clickable at point (447, 882). Other element would receive the click: <span class="md-toast-text ng-binding" role="alert" aria-relevant="all" aria-atomic="true">...</span>

对于Java,我看到有this解决方案来确定按钮是否可点击:

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;
        }
    }

使用JavaScript的等效解决方案是什么?我在documentation中看到直到模块的几个条件,但是我没有看到如何测试按钮是否可单击。任何帮助将不胜感激!

accepted answerthis帖子介绍了Java解决方案。该帖子的another answer中提供了Java脚本解决方案。但是我要等到元素不再隐藏。我不想在隐藏按钮时单击它,因为那样会使我的测试无效。

P.s:现在,我测试吐司是否可见,然后等待吐司关闭,然后再继续测试。但是,我希望有一个更通用的解决方案。

0 个答案:

没有答案