我怎样才能最小化Selenium浏览器(如Firefox)?

时间:2011-07-10 21:50:13

标签: selenium

我如何最小化启动Selenium浏览器(如Firefox)?我希望命令browser.start(mySettings)启动浏览器最小化。

14 个答案:

答案 0 :(得分:14)

我有一个可以满足您需求的替代解决方案。您可以将WebDriver的位置设置为在视图之外。这样,它在运行时就会消失。 (它可能从一个可见的位置开始,但它只会在那里瞬间出现。)

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

答案 1 :(得分:6)

您的问题并未说明为什么您希望在最小化的浏览器中运行测试用例,但遗憾的是,selenium不会为同一个提供任何内置函数。

通常,当我们想要使用最大化浏览器运行测试用例时,我们使用driver.manage().window().maximize();

毫无疑问,通过使用键盘快捷键来最小化窗口或使用JavaScriptExecuter ,有几种方法可以通过代码最小化窗口,但这又取决于您正在使用的操作系统和语言

您可以尝试的另一件事是 HtmlUnitDriver 。使用此功能,您甚至无法看到浏览器,因此如果您在执行测试时遇到无法打开浏览器的情况,这也可能会达到您的目的例。

答案 2 :(得分:3)

Dimension windowMinSize = new Dimension(100,100);
driver.manage().window().setSize(windowMinSize);

答案 3 :(得分:2)

在不知道您最小化浏览器的动机并假设您正在使用WebDriver驱动程序(Selenium v​​2)并且不希望弹出UI的情况下,可以使用轻量级浏览器HtmlUnitDriver。

答案 4 :(得分:2)

对于C#,您还可以使用内置方式轻松地最小化窗口。

请参阅:https://www.selenium.dev/documentation/en/webdriver/browser_manipulation

屏幕截图:

screenshot

答案 5 :(得分:1)

When Using Python to Move the FireFox Browser off screen:

driver = webdriver.FireFox()
driver.set_window_position(-2000,0)

答案 6 :(得分:1)

driver.set_window_position(2000,2000)

(x,y)值大于监视器分辨率

稍后如果你想再次看到窗口

driver.maximize_window()

答案 7 :(得分:0)

在php中,我们可以使用JavaScript命令来最小化浏览器窗口。

    $this->selenium->getEval("Minimize();");

和java的类似命令:

    browser.getEval("Minimize();");

答案 8 :(得分:0)

帖子中提到的变通方法对NodeWebKit浏览器不起作用,因此我必须使用本机C#代码,如下所述:

public static void MinimiseNWKBrowser(IWebDriver d)
        {
            var body = UICommon.GetElement(By.TagName("body"), d);
            body.Click();
            string alt = "%";
            string space = " ";
            string down = "{DOWN}";
            string enter = "{ENTER}";
            SendKeys.SendWait(alt + space);
            for(var i = 1; i <= 5; i++)
            {
                SendKeys.SendWait(down);
            }
            SendKeys.SendWait(enter);            
        }

所以这个解决方法基本上使用&#34; ALT + SPACE&#34;调出浏览器操作菜单以选择&#34; MINIMIZE&#34;从选项和按下&#34; ENTER&#34;

答案 9 :(得分:0)

最小化浏览器的最佳方法是使用Robot类使用快捷方式。

快捷方式:Alt + Space + N(适用于Windows)

    Robot robot=new Robot();
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_SPACE);
    robot.keyPress(KeyEvent.VK_N);
    robot.keyRelease(KeyEvent.VK_ALT);
    robot.keyRelease(KeyEvent.VK_SPACE);
    robot.keyRelease(KeyEvent.VK_N);

通过使用上述代码,您可以最小化浏览器。

答案 10 :(得分:0)

Selenium没有内置的方法来最小化 浏览上下文。在测试执行处于进行中的情况下将浏览器最小化会违反最佳做法,因为 Selenium 可能会失去对浏览上下文的关注,并且在 Test Execution 中可能会引发异常。您可以在How to execute tests with selenium webdriver while browser is minimized

中找到相关的详细讨论

但是,要模仿最小化 浏览上下文的功能,可以使用以下步骤:

  • 浏览上下文维度设置为[00]
  • 设置浏览上下文左上角的位置,位于Viewport
  • 的正下方
  • 代码块( Java ):

    driver.navigate().to("https://www.google.com/");
    Point p = driver.manage().window().getPosition();
    Dimension d = driver.manage().window().getSize();
    driver.manage().window().setSize(new Dimension(0,0));
    driver.manage().window().setPosition(new Point((d.getHeight()-p.getX()), (d.getWidth()-p.getY())));
    

答案 11 :(得分:0)

定义驱动程序后

driver = webdriver.Chrome(r"FULL PATH TO YOUR CHROMEDRIVER")

driver.minimize_window()

然后致电该站点

driver.get(r'SITE YOU WANT TO SELECT')

它将最小化。

答案 12 :(得分:-1)

您可以使用:

driver.manage().window().maximize();


For example code snippet with chrome driver:
System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe");
driver = new ChromeDriver();
baseUrl = "chrome://newtab/";
driver.manage().window().maximize().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Firefox的

只使用“firefordriver.exe”

答案 13 :(得分:-5)

driver.manage().window().minimize();

这应该有助于最小化窗口。您还可以使用&#34;最大化&#34;代替&#34;最小化&#34;最大化窗口。