Es scheint, dass Chrome 59 um den 05.06.2017 veröffentlicht wurde. Ich denke, dass es viele Leute gibt, die sich darauf gefreut haben, weil diese Version den Headless-Modus unterstützt. Die neueste Version des Treibers Chrome Driver 2.29 unterstützt jedoch nur bis zu Chrome 58, sodass Sie eine Weile warten müssen. Es kann jedoch bis zu einem gewissen Grad verschoben werden, so dass es vorbereitet werden kann.
Normalerweise (nicht kopfloser Modus) scheint die Kombination von Chrome59 + ChromeDriver2.29 ohne Probleme zu funktionieren.
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();
Fügen Sie dann Chrome-Parameter hinzu, indem Sie auf "Headless Chrome Beginning" verweisen.
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
//Chrome-Parameter "--headless --disable-GPU "Bezeichnung
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();
In diesem Fall können Sie Screenshots auch in einer Umgebung ohne Anzeige erstellen.
Vielleicht ist es nur meine Linux-Umgebung, aber ich kann einige Verhaltensunterschiede feststellen, die ich nicht gut verstehe. Es scheint besser, es mit Vorsicht zu verwenden, bis es sich stabilisiert.
Wenn Sie einen Proxy verwenden, der sich von den Betriebssystemeinstellungen unterscheidet, werden die Parameter in Chrome verwendet
-–proxy-server="http=xxx.xxx.xxx.xxx:8080;https=xxx.xxx.xxx.xxx:8080"
--proxy-bypass-list="local-test-server"
Es sollte angegeben werden als, aber wenn Sie dies im kopflosen Modus hinzufügen
python
WebDriver driver = new ChromeDriver(options);
Es wird aufhören.
Wenn ich versuche, auf eine Site zuzugreifen, die ein rotes Dreieck auf der linken Seite der URL hat
python
driver.get(url);
Es wird bei aufhören. Es gibt keine Änderung, auch wenn ich den Chrome-Parameter "--ignore-zertifikatsfehler" hinzufüge.
Für Websites mit mehreren Fenstern
python
driver.switchTo().window(windowId);
Ich schalte so um, aber es schaltet auch nach ein paar Minuten Wartezeit nicht um.
Recommended Posts