2011-03-06 80 views
0

我使用FirefoxDriver时使用Selenium,当它实例化时,FireFox浏览器自动打开,我们如何隐藏它?使用FirefoxDriver隐藏浏览器

WebDriver driver = new FirefoxDriver();

感谢,

+0

如果你正在开发一个Linux环境,然后看看http://stackoverflow.com/a/38768819/399959 – 2016-08-04 13:36:40

回答

1

您可能能够使用Win32附加到窗口句柄和隐藏它,但除此之外,我不认为这是可以做到。

Selenium中的FirefoxDriver是用于为UI测试自动化真正的Firefox浏览器(而不是它的一些表示)。正因为如此,真正的浏览器需要运行才能正常工作。

如果你想要一个不可查看的UI驱动程序,你需要使用HtmlUnit驱动程序。

然而,随着网站说:

主流浏览器都没有使用由 的HtmlUnit(犀牛)所使用的 JavaScript引擎。如果您使用 HtmlUnit测试JavaScript,则结果可能会与这些浏览器显着不同 。

所以我会小心信任HtmlUnit驱动程序。

源:http://seleniumhq.org/docs/03_webdriver.html#webdriver-implementations

编辑

另外,我想补充一点,一般的自动化测试将是一个专用的机器上没有用户。在这种情况下,不管天气如何,您都可以看到浏览器。

+0

是的,但HtmlUnit驱动程序或事件HtmlUnit库不能解析此页面:https://www.oceanschedules .com/schedules/search.do – user340882 2011-03-06 14:27:01

+0

您可能可以设置用户代理并欺骗站点。 HTTP://计算器。COM /问题/ 4565250 /设置用户代理的硒-RC – 2011-03-07 02:13:53

1

如果您不想打开像Firefox这样的真实浏览器,那么您应该使用Html单元驱动程序(远程网络驱动程序)。首先添加命名空间,然后编写代码。好运。

使用OpenQA.Selenium;使用OpenQA.Selenium.Remote的 ;

class Program 
{ 
    static void Main(string[] args) 
    { 
     ICapabilities desiredCapabilities = DesiredCapabilities.HtmlUnit(); 
     IWebDriver driver = new RemoteWebDriver(desiredCapabilities); 

     //your code begins here 

    } 
} 
0

另外,我想补充一点,一般的自动化测试将是一个专用的机器,没有用户上。在这种情况下,不管天气如何,您都可以看到浏览器。

启动GUI比启动非gui浏览器要长。当你有一个庞大的项目并且不想让你的测试永恒完成时,这非常重要。

0

不知道,你试图达到什么目的,但据我了解,当硒测试运行时,你希望firefox窗口不要中断你的工作。所以你可以在另一个桌面上运行你的测试。使用例如这个工具:Desktops。简单而便宜的解决方案

相关问题