Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium在浏览器(Chrome)隐藏时失败,但在浏览器可见时成功_Java_Selenium_Google Chrome_Selenium Chromedriver - Fatal编程技术网

Java Selenium在浏览器(Chrome)隐藏时失败,但在浏览器可见时成功

Java Selenium在浏览器(Chrome)隐藏时失败,但在浏览器可见时成功,java,selenium,google-chrome,selenium-chromedriver,Java,Selenium,Google Chrome,Selenium Chromedriver,标题说明了一切:当Chrome被隐藏时,Selenium会失败(我使用Mac,可以“隐藏”正在运行的应用程序),但当浏览器可见时,Selenium会成功 发生的情况是,我在第1页(P1)上发送了一个点击,该点击被接受,并且Chrome/Chromedriver以某种方式报告说第2页(P2)已加载完毕,但当我尝试在P2处使用if(driver.findelelements(By.xpath(xpMail)).size()>0)查找元素时,它不在那里,无论我在检查之前休眠程序多长时间 但是,如果我通

标题说明了一切:当Chrome被隐藏时,Selenium会失败(我使用Mac,可以“隐藏”正在运行的应用程序),但当浏览器可见时,Selenium会成功

发生的情况是,我在第1页(P1)上发送了一个点击,该点击被接受,并且Chrome/Chromedriver以某种方式报告说第2页(P2)已加载完毕,但当我尝试在P2处使用if(driver.findelelements(By.xpath(xpMail)).size()>0)查找元素时,它不在那里,无论我在检查之前休眠程序多长时间

但是,如果我通过将Chrome带到前面来激活它,就会立即找到该元素。此问题特定于P1/P2。我运行的脚本在P1/P2前后执行几十个步骤,没有任何问题,与浏览器是否隐藏或在前台可见无关

一些简化代码:

        do {
            if (driver.findElements(By.xpath(xpMail)).size() > 0) {
                Utilities.clearSendKeysAndWaitRandomLength(driver, xpMail, finalEmail, avgDelay);
            } else {
                Thread.sleep(500);
            }
            if (i%5 == 0 ) {
                Toolkit.getDefaultToolkit().beep();
                driver.get(URL);
                wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpLand)));
                Utilities.clickAndWaitRandomLength(driver, xpLand, avgDelay);
            }
            if (i > 25) {
                break;
            }
            i++;
        } while (variable == 0);
知道为什么会这样吗?变通办法?在这一步之前,我是否可以通过编程的方式将Chrome带到前台,然后再将其隐藏