J'ai une suite de tests Selenium qui exécute de nombreux tests et à chaque nouveau test, une fenêtre de navigateur s'ouvre au-dessus de toutes les autres fenêtres que j'ai ouvertes. C'est très gênant lorsque l'on travaille dans un environnement local. Existe-t-il un moyen d'indiquer à Selenium ou au système d'exploitation (Mac) d'ouvrir les fenêtres en arrière-plan ?
Réponses
Trop de publicités?Si vous utilisez le pilote Google Chrome, vous pouvez utiliser ce code très simple (il a fonctionné pour moi) :
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome('chromedriver2_win32/chromedriver.exe', options=chrome_options)
driver.get('https://www.anywebsite.com')
Une façon d'y parvenir est d'exécuter le navigateur en mode sans tête. Un autre avantage de cette méthode est que les tests sont exécutés plus rapidement.
Veuillez trouver le code ci-dessous pour définir le mode sans tête dans le navigateur Chrome.
package chrome;
public class HeadlessTesting {
public static void main(String[] args) throws IOException {
System.setProperty("webdriver.chrome.driver",
"ChromeDriverPath");
ChromeOptions options = new ChromeOptions();
options.addArguments("headless");
options.addArguments("window-size=1200x600");
WebDriver driver = new ChromeDriver(options);
driver.get("https://contentstack.built.io");
driver.get("https://www.google.co.in/");
System.out.println("title is: " + driver.getTitle());
File scrFile = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("pathTOSaveFile"));
driver.quit();
}
}
Voici une solution .NET qui a fonctionné pour moi :
Téléchargez PhantomJS à l'adresse http://phantomjs.org/download.html .
Copiez le fichier .exe du dossier bin du dossier de téléchargement et collez-le dans le dossier bin debug/release de votre projet Visual Studio.
Ajoutez ceci en utilisant
using OpenQA.Selenium.PhantomJS;
Dans votre code, ouvrez le pilote comme ceci :
PhantomJSDriver driver = new PhantomJSDriver();
using (driver)
{
driver.Navigate().GoToUrl("http://testing-ground.scraping.pro/login");
// Your code here
}
Si vous utilisez Ubuntu (Gnome), une solution de contournement simple consiste à installer l'extension Gnome auto-move-window : https://extensions.gnome.org/extension/16/auto-move-Windows/
Ensuite, placez le navigateur (par exemple, Chrome) dans un autre espace de travail (par exemple, l'espace de travail 2). Le navigateur fonctionnera silencieusement dans l'autre espace de travail et ne vous dérangera plus. Vous pouvez toujours utiliser Chrome dans votre espace de travail sans aucune interruption.