如何最小化通过Selenium Webdriver启动的浏览器窗口?

我看到有一种最大化(文档化)的方法,但是我找不到最小化的反面。

我尝试过调整窗口的大小和位置,但是这与最小化的方式不同。

Selenium中有办法吗?还是只能通过机器人按键事件(例如Windows + D)来完成此操作?

评论

只是好奇为什么要最小化?您是否想测试在最小化的情况下可行的方法?要么?过去,我遇到的问题不是全屏浏览器。导致在开始时最大程度地利用浏览器来开始每个测试。

我真的不想在最小化的情况下进行任何测试。我想知道为什么WebDriver有一个最大化的选择,而没有最小化。另外,最近在我参加的一次采访中有人问我这个问题。

#1 楼

您的问题的简短答案:不幸的是,Selenium没有提供任何内置功能来最小化浏览器窗口,仅提供了最大化窗口的功能。但是有一些解决方法。


如果希望窗口不可见,则需要使用此代码。通过使用它,浏览器窗口将不在您的视线范围内,您将无法看到正在运行的窗口,但是不用担心您的测试用例会继续执行。它经过尝试和测试,可以解决。

参考链接

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



您可以使用PhantomJS运行测试用例,下载并通过此链接进行安装,只需将

driver = webdriver.Firefox()更改为driver = webdriver.PhantomJS()

,而无需更改任何代码。您的浏览器将在隐藏模式下运行。

参考链接


使用Robot类和Windows快捷键进行相同操作(您已经提到过)。


评论


另一种选择可能是使用“ HtmlUnitDriver”(与PhantomJS类似的行)。

–JustARandomGuy
2015年11月5日在2:16



是的,那里也有,但我认为OP可能对此有所了解。

–迪曼
2015年11月5日在2:23

非常感谢您的回答。我将尝试PhantomJS并查看其工作原理。

– kanayikkaran
2015年11月5日下午5:20

为什么每个人都这么说? phandomJS与现有代码一起使用并不是真的,并且您无需更改任何内容。

–veritaS
18-11-3在23:21



#2 楼

也许,我在这里的上下文有误(OP的文档链接现在已断开),但是我相信您现在可以使用webdriver.minimize_window()最小化窗口。

Python文档

#3 楼

对于C#语言:
 driver.Manage().Window.Minimize();
 

在Chrome,Firefox,IE上正常运行,但对于“ Edge”驱动程序则失败。 >

评论


您可以添加文档的参考链接!

– Nawshad Rehan Rasha
18/12/5在5:19

@NawshadRehanRasha我找不到合适的文档。它为我工作(在C#中)。我有一些我尝试过的代码的图片。请检查链接:github.com/priyanka-kondapuram/C-Sharp/issues/1

–Priyanka
18/12/20在18:50

#4 楼

我最好说的是使用Robot Class键入快捷方式。
将快捷方式最小化:Alt + Space + N

    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);


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

#5 楼

您还可以调整窗口大小:

 Dimension n = new Dimension(360,592);  
 driver.manage().window().setSize(n);


#6 楼

driver.manage().window().setSize(new Dimension(1200,800));


这对您有用。

评论


您能否详细说明为什么这与2015年11月19日的相同答案不同?

–corsiKa♦
20年3月1日在16:39