2011-03-06 90 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。簡單而便宜的解決方案