Il semble que Chrome 59 soit sorti vers le 05/06/2017. Je pense qu'il y a beaucoup de gens qui l'attendaient avec impatience car cette version prend en charge le mode sans tête. Cependant, la dernière version du pilote Chrome Driver 2.29 ne prend en charge que jusqu'à Chrome 58, vous devez donc attendre un moment. Cependant, il peut être déplacé dans une certaine mesure, il est donc possible d'être préparé.
Normalement (mode sans tête), la combinaison de Chrome59 + ChromeDriver2.29 semble fonctionner sans problème.
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("http://qiita.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("/path/to/screenshot.png "));
driver.quit();
Ensuite, ajoutez des paramètres Chrome en vous référant à «Headless Chrome Beginning».
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
//Paramètre Chrome "--headless --disable-désignation gpu "
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--disable-gpu");
// WebDriver driver = new ChromeDriver();
WebDriver driver = new ChromeDriver(options);
driver.get("http://qiita.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("/path/to/screenshot.png "));
driver.quit();
Si vous faites cela, vous pouvez prendre des captures d'écran même dans un environnement sans écran.
C'est peut-être juste mon environnement Linux, mais je peux voir des différences de comportement que je ne comprends pas bien. Il semble préférable de l'utiliser avec prudence jusqu'à ce qu'il se stabilise.
Si vous utilisez un proxy différent des paramètres du système d'exploitation, les paramètres de Chrome
-–proxy-server="http=xxx.xxx.xxx.xxx:8080;https=xxx.xxx.xxx.xxx:8080"
--proxy-bypass-list="local-test-server"
Il doit être spécifié comme, mais si vous l'ajoutez en mode sans tête
python
WebDriver driver = new ChromeDriver(options);
Cela s'arrêtera.
Lorsque j'essaie d'accéder à un site comportant un triangle rouge sur le côté gauche de l'URL
python
driver.get(url);
Cela s'arrêtera à. Il n'y a pas de changement même si j'ajoute le paramètre Chrome --ignore-certificate-errors
.
Pour les sites impliquant plusieurs fenêtres
python
driver.switchTo().window(windowId);
Je le change comme ça, mais il ne change pas même après avoir attendu quelques minutes.
Recommended Posts