Selenium Java:等待可单击

时间:2018-10-12 00:29:07

标签: java selenium cucumber-java webdriverwait

我陷入硒等待的境地。我正在将Selenium Java与黄瓜一起使用。 单击按钮后,将加载新页面,但尚未使内容可单击。页面背面加载时会显示一个灰色屏幕阻止程序,以使其在整个页面加载之前不可编辑。所以我不能使用waitforpageload或等待元素可见,因为当元素在后台可用时它们都返回true。 我尝试使用一种条件来检查元素是否可单击以确保页面完全加载。但这也不起作用。页面加载到后台后,将执行进一步的检查,并且测试最终会出错。

我也尝试过waituntilelement可见:

public static void waitUntilTextIsInvisible(final String text, final int timeoutInSecs)
    {
        if (StringUtils.isBlank(text))
        {
            return;
        }

        try
        {
            (new WebDriverWait(_webDriver, timeoutInSecs))
                    .until(new ExpectedCondition<Boolean>()
                    {
                        @Override
                        public Boolean apply(final WebDriver d)
                        {
                            return SeleniumUtils.findElementsContainingText(text, d).size() == 0;
                        }
                    });
        }
        catch (TimeoutException e)
        {
            LOG.error("Exception on page " + _webDriver.getCurrentUrl()
                    + " waiting for text " + text + " to be visible");
            throw e;
        }
    }

但这甚至返回了true,然后继续执行下一步。 如何使硒等待灰屏消失,然后在页面上查找内容。

任何答复将不胜感激。

-拉克希米。

1 个答案:

答案 0 :(得分:0)

当页面加载并且出现灰色屏幕阻止程序时,您可以暂停浏览器。获取它的xpath并等待它不再存在。让我知道是否有帮助。