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)?
risposta
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.
HTMLUnitDriver funziona bene in pagine web generali, ma le pagine web codificate in AJAX o JavaScript pesanti a volte funziona molto male! – roosevelt
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));
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
Non ho mai scherzato con un gestore di finestre. Suppongo che significhi che sto usando il window manager predefinito di Selenium. – NoBrainer
awesome WM è un gestore di finestre desktop e lo sto usando su Linux. Stai usando MacOS o Windows? – blueyed
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.
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();");
Questo non richiede una funzione globale 'Minimizza' nel browser (che Firefox non sembra avere).? – blueyed
Sembra che questo non funzioni effettivamente su Firefox. ((IJavaScriptExecutor) autista) .ExecuteScript ("Minimizzare();"); – LeoPucciBr
Dimension windowMinSize = new Dimension(100,100);
driver.manage().window().setSize(windowMinSize);
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.
Quale API selenio è questa? Sembra che ci sia solo un metodo 'maxim', ma niente per minimizzare (Selenium 2.42.1, API Python). – blueyed
Non trovo alcun metodo .minimize(), il selenio supporta solo .maximize(); –
È 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"
quando si utilizza Python per spostare il browser FireFox fuori dallo schermo:
driver = webdriver.FireFox()
driver.set_window_position(-2000,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
.set_window_position (2000,2000)
o
(x, y) Valori più di risoluzione del monitor
seguito se u vuole vedere il finestrino
driver.maximize_window()
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.
http://stackoverflow.com/questions/3224518/how-to-close-or-minimize-browser-windows-with-selenium-rc –
I browser senza testa vengono utilizzati per questo scopo. –