【问题标题】:Hide browser when using FirefoxDriver使用 FirefoxDriver 时隐藏浏览器
【发布时间】:2012-04-23 18:55:35
【问题描述】:
我使用 Selenium 和 FirefoxDriver,当实例化它时,FireFox 浏览器自动打开,我们如何隐藏它?
WebDriver 驱动 = new FirefoxDriver();
谢谢,
【问题讨论】:
标签:
javascript
css
selenium
htmlunit
【解决方案1】:
您也许可以使用 Win32 附加到窗口句柄并将其隐藏,但除此之外,我认为无法做到。
Selenium 中的 FirefoxDriver 用于自动化真正的 Firefox 浏览器(不是它的某种表示)以进行 UI 测试。因此,真正的浏览器需要运行才能正常工作。
如果您想要一个不可见的 UI 驱动程序,则需要使用 HtmlUnit 驱动程序。
但是正如网站所说:
没有一个流行的浏览器使用
HtmlUnit 使用的 JavaScript 引擎
(犀牛)。如果您使用
HtmlUnit 结果可能不同
明显来自那些浏览器。
所以我会小心信任 HtmlUnit 驱动程序。
源代码:http://seleniumhq.org/docs/03_webdriver.html#webdriver-implementations
编辑
另外,我要补充一点,自动化测试通常会在没有用户的专用机器上进行。在这种情况下,无论天气如何,您都可以看到浏览器。
【解决方案2】:
如果你不想像火狐一样打开真正的浏览器,那么你应该使用Html Unit Driver(Remote Web Driver)。首先添加命名空间,然后编写代码。祝你好运。
使用 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
}
}
【解决方案3】:
另外,我要补充一点,自动化测试通常会在没有用户的专用机器上进行。在这种情况下,无论天气如何,您都可以看到浏览器。
启动 GUI 比启动非 GUI 浏览器要长。当您有一个庞大的项目并且不希望您的测试需要很长时间才能完成时,这一点非常重要。
【解决方案4】:
不确定,您尝试实现什么,但据我了解,您希望 Firefox Windows 在运行硒测试时不要中断您的工作。因此,您可以在另一个桌面上运行您的测试。例如使用这个工具:Desktops。简单且便宜的解决方案。