PhantomJS - Element目前无法互动

时间:2015-07-23 23:09:16

标签: java selenium phantomjs

我目前正在使用PhantomJS + Selenium来填充某些表单字段,但结果却很奇怪。 50%的时间,测试运行良好。另外50%它出错并给我以下

  

{“errorMessage”:“元素目前不可互动,可能不是   操纵“

我正在执行以下操作以确保页面已加载。

private static boolean waitForJQueryProcessing(WebDriver driver,
        int timeOutInSeconds) {
    boolean jQcondition = false;
    try {
        new WebDriverWait(driver, timeOutInSeconds) {
        }.until(new ExpectedCondition<Boolean>() {

            @Override
            public Boolean apply(WebDriver driverObject) {
                return (Boolean) ((JavascriptExecutor) driverObject)
                        .executeScript("return jQuery.active == 0");
            }
        });
        jQcondition = (Boolean) ((JavascriptExecutor) driver)
                .executeScript("return window.jQuery != undefined && jQuery.active === 0");
        return jQcondition;
    } catch (Exception e) {
        logger.debug(e.getMessage());
    }
    return jQcondition;
}

然后与元素进行交互:

pageWait.until(ExpectedConditions.presenceOfElementLocated(By
                    .cssSelector("#myForm-searchDate")));

            driver.findElement(
                    By.cssSelector("#myForm-searchDate"))
                    .sendKeys(Keys.CONTROL + "a");
            driver.findElement(
                    By.cssSelector("#myForm-searchDate"))
                    .sendKeys(Keys.DELETE);
            driver.findElement(
                    By.cssSelector("#myForm-searchDate"))
                    .sendKeys(MY_TEST_DATE);

我可以看到它是否一直失败,但它并不会一直失败,所以在调试时很难重复结果。

编辑1.我已尝试按照以下评论进行交换;但是,它不起作用。我已经意识到这似乎只有在我同时发射几个(5+)个PhantomJS实例时才会发生。

0 个答案:

没有答案