Код: Выделить всё
devTools.send(Emulation.setDeviceMetricsOverride(
500, // width
600, // height
50, // deviceScaleFactor
true, // mobile
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty()
));
Код: Выделить всё
String driverpath = Main.configuration.getString("browser.chromedriver");
String browserpath = Main.configuration.getString("browser.chromebrowser");
if(driverpath != null && !driverpath.isBlank()){
System.setProperty(
"webdriver.chrome.driver",
driverpath
);
System.setProperty(
"webdriver.gecko.driver",
driverpath
);
}
ChromeOptions options = new ChromeOptions();
if(headless){
Main.printf("Chrome headless");
options.addArguments("--headless");
}
options.addArguments("--disable-search-engine-choice-screen");
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--no-sandbox"); // Bypass OS security model
if(browserpath != null && !browserpath.isBlank()){
options.setBinary(browserpath);
}
Main.printf("Start Chromedriver...");
this.driver = new ChromeDriver(options);
DevTools devTools = ((HasDevTools) driver).getDevTools();
devTools.createSession();
devTools.send(Emulation.setDeviceMetricsOverride(
500, // width
600, // height
50, // deviceScaleFactor
true, // mobile
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty()
));
String script = "window.was_here=true; console.log('Script executed');";
ScriptIdentifier identifier = devTools
.send(Page.addScriptToEvaluateOnNewDocument(script, // source
Optional.empty(), // worldName
Optional.of(false), // includeCommandLineAPI
Optional.of(false) // runImmediately
));
System.err.println(String.format(
"Method Page.addScriptToEvaluateOnNewDocument result: %s", identifier));
driver.navigate().to("https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html");
try {
Thread.sleep(100); // nur zum Test, für sichtbare Effekte
} catch (InterruptedException e) {
e.printStackTrace();
}
Object d = getJSExecutor().executeScript("return window.was_here");
if(d != null){
boolean data = (Boolean) d;
Main.printf("Scraper", "DATA:"+(data ? "T" : "F"));
}else Main.printf("Scraper", "D IS NULL!!");
devTools.send(Page.removeScriptToEvaluateOnNewDocument(identifier));
try {
Thread.sleep(500000); // nur zum Test, für sichtbare Effekte
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit();
System.exit(0);
Main.printf("Chromedriver started :)");
- selenium-java:4.25.0
- selenium-devtools-v127:4.25.0
Chrome Драйвер: v127 (https://datatoolbar.com/downloads/Drivers/chrome.127/)
Может ли кто-нибудь сказать мне, почему мой тестовый код не работает, я скопировал тест из этот проект
Подробнее здесь: https://stackoverflow.com/questions/791 ... tools-v127