2011-07-10 9 views
20

Come si può ridurre a icona un browser Selenium (come Firefox)? Voglio il comando browser.start(mySettings) per avviare un browser minimizzato.Come si può minimizzare un browser Selenium (come Firefox)?

+0

http://stackoverflow.com/questions/3224518/how-to-close-or-minimize-browser-windows-with-selenium-rc –

+0

I browser senza testa vengono utilizzati per questo scopo. –

risposta

2

Senza conoscere il motivo per minimizzare il browser e supponendo che si stiano utilizzando i driver WebDriver (Selenium v2) e non si desideri visualizzare un'interfaccia utente, è possibile utilizzare il browser leggero HtmlUnitDriver.

+0

HTMLUnitDriver funziona bene in pagine web generali, ma le pagine web codificate in AJAX o JavaScript pesanti a volte funziona molto male! – roosevelt

14

Ho una soluzione alternativa che potrebbe soddisfare le vostre esigenze. È possibile impostare la posizione di WebDriver all'esterno della propria vista. In questo modo, sarà fuori vista mentre corre. (Si può iniziare in una posizione visibile, ma sarà solo essere lì per un istante.)

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

Questo non funzionerà se il window manager impedisce la finestra per essere collocato fuori dallo schermo (che sembra essere il caso con impressionante WM). Dove funziona per te? – blueyed

+0

Non ho mai scherzato con un gestore di finestre. Suppongo che significhi che sto usando il window manager predefinito di Selenium. – NoBrainer

+0

awesome WM è un gestore di finestre desktop e lo sto usando su Linux. Stai usando MacOS o Windows? – blueyed

6

La tua domanda non dice che il motivo per cui si desidera eseguire i casi di test in del browser minimizzato ma purtroppo il selenio non lo fanno fornire qualsiasi funzione integrata per lo stesso.

Normalmente quando si vuole eseguire casi di test con il browser massimizzata usiamo driver.manage().window().maximize();

Non c'è dubbio che ci sono diversi modi per ridurre al minimo la finestra tramite il codice utilizzando Java evento chiave utilizzando le scorciatoie da tastiera per la finestra minimimzing o utilizzando JavaScriptExecuter ma dipende anche da quale sistema operativo e lingua si sta lavorando.

Una cosa di più si può provare è HtmlUnitDriver .In utilizzo di questo non puoi anche vedere il browser, in modo che possa anche servire il vostro scopo, se si dispone di un caso di non aprire il browser mentre esecuzione di casi di test.

0

In PHP è possibile utilizzare il comando JavaScript per ridurre a icona la finestra del browser.

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

e simili di comando per Java:

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

Questo non richiede una funzione globale 'Minimizza' nel browser (che Firefox non sembra avere).? – blueyed

+0

Sembra che questo non funzioni effettivamente su Firefox. ((IJavaScriptExecutor) autista) .ExecuteScript ("Minimizzare();"); – LeoPucciBr

3
Dimension windowMinSize = new Dimension(100,100); 
driver.manage().window().setSize(windowMinSize); 
-5
driver.manage().window().minimize(); 

questo dovrebbe aiutare a ridurre al minimo la finestra. Puoi anche usare "massimizzare" al posto di "minimizza" per massimizzare la finestra.

+6

Quale API selenio è questa? Sembra che ci sia solo un metodo 'maxim', ma niente per minimizzare (Selenium 2.42.1, API Python). – blueyed

+0

Non trovo alcun metodo .minimize(), il selenio supporta solo .maximize(); –

-1

È possibile utilizzare:

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

per Firefox utilizzare solo "firefordriver.exe"

+1

La domanda era: "Per iniziare Minimizzato", non ingrandito ... – kirsche40

+2

non risponde alla domanda – ldevp

1

quando si utilizza Python per spostare il browser FireFox fuori dallo schermo:

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

Le soluzioni alternative di cui al il post non funzionava con il browser NodeWebKit, quindi come soluzione alternativa ho dovuto utilizzare il codice C# nativo come indicato di seguito:

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

Quindi questa soluzione utilizza fondamentalmente "ALT + SPAZIO" per far apparire il menu di azione del browser per selezionare "Minimizza" tra le opzioni e le presse "ENTER" conducente

0

.set_window_position (2000,2000)

o

(x, y) Valori più di risoluzione del monitor

seguito se u vuole vedere il finestrino

driver.maximize_window()

0

Il modo migliore per minimizzare il browser è usare il collegamento usando la classe Robot.

di scelta rapida: Alt + Spazio + N (per 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); 

Utilizzando sopra codice è possibile ridurre al minimo il browser.

Problemi correlati