繁体   English   中英

使用IntelliJ Idea的Selenium WebDriver运行JUnit时如何使浏览器窗口在后台运行?

[英]How to make browser window to run in background when running JUnit with Selenium WebDriver from IntelliJ Idea?

我在Selenium WebDriver上运行自动化测试,作为来自IntellijIdea的JUnit测试。 当浏览器打开并且其中正在执行某些操作时,它总是将自己置于前面,即使我已经选择了其他窗口。 这不是很方便。 有些测试运行了几分钟,我希望能够在运行时处理其他一些任务。 或者,如果我想要运行整个套件,我不能只是坐着观看30分钟。

从Windows操作系统切换到Linux Mint后,我开始遇到此问题。 在Windows上浏览器仍然在后台,并没有打扰我。 有没有办法在Linux Mint OS上配置这样的行为?

我已经尝试在单独的LinuxMint工作区中运行浏览器/ IntelliJ Idea,但没有帮助。 一旦在那里进行某些活动,浏览器窗口就会弹出另一个工作区。 此外,我在LinuxMint的Windows行为设置中设置了此配置: 在此输入图像描述

截至本周(铬57或更高),可以在无头模式下运行 要做到这一点,你只需传递--headless标志。

要通过Selenium webdriver将此标志传递给chrome,您可以使用以下代码:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");

ChromeDriver chromeDriver = new ChromeDriver(options);

我不确定这是否完全解决了焦点问题..在我的情况下,仍然有一个镀铬窗口窃取焦点,但我认为这是一个很大的改进,因为窗口没有弹出我的面前这样做。

我认为这绝对值得一试。 我将继续关注焦点问题并在发现问题时进行更新。

Selenium没有内置的方法来最小化浏览器,但是你可以使用以下方法看不见:

driver.manage().window().setPosition(new Point(-2000, 0));

虽然这种'hack'会将浏览器窗口移开视线,但是当驱动程序初始化时,浏览器会在短时间内可见。

尝试使用RemoteDriver,它将使用最小化的浏览器执行代码。 将localhost ip作为主机地址。 代码看起来像这样。

  try {


    capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability("chrome.switches", Arrays.asList(
                "--start-maximized", "--disable-popup-blocking"));
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/BrowserDrivers/chromedriver.exe");
        // Code to faster execution on Chrome 
        ChromeOptions chromOpt = new ChromeOptions();
        chromOpt.addArguments("Proxy","null");
        capabilities.setCapability(ChromeOptions.CAPABILITY,chromOpt );
        driver = new RemoteWebDriver(new URL("http://127.0.0.1:5555/wd/hub"), capabilities);*/
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

您正在寻找的解决方案似乎称为虚拟显示 ,您需要创建虚拟显示并在那里执行测试。 寻找xvfb 但是,我不是100%它将与Chrome一起使用。 另一个选择是在linux下创建虚拟机(例如使用虚拟机)并使用Selenium Grid连接到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM