#java #docker #selenium #selenium-webdriver
#java #docker #selenium #selenium-webdriver
Вопрос:
Я пытаюсь получить Whatsapp QR с помощью Selenium WebDriver на удаленном компьютере.
Я использую последнюю версию пакета docker
selenium / standalone-chrome: последняя версия
Дело в том, что если я попробую следующий код без включения headless, он будет работать гладко.
Возможно, моя конфигурация неверна.
Есть идеи?
ChromeOptions dCap = new ChromeOptions();
dCap.setHeadless(true);
dCap.setCapability("platform", "LINUX");
dCap.setCapability("version", "latest");
dCap.addArguments("disable-infobars");
dCap.addArguments("--start-maximized");
dCap.addArguments("--disable-extensions");
dCap.addArguments("--disable-gpu");
dCap.addArguments("--window-size=1920x1080");
dCap.addArguments("--enable-javascript");
String driverPath = System.getProperty("user.dir") "/exe/chromedriver";
System.setProperty("webdriver.chrome.driver", driverPath);
URL rutaProxy = new URL("http://localhost:4444/wd/hub");
WebDriver driver = new RemoteWebDriver(rutaProxy, dCap);
driver.get("https://web.whatsapp.com/");
WebDriverWait espera = new WebDriverWait(driver, 20);
espera.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".landing-main canvas")));
WebElement canvas = driver.findElement(By.cssSelector(".landing-main canvas"));
JavascriptExecutor js = (JavascriptExecutor)driver;
String imagenBase64 = (String) js.executeScript("return arguments[0].toDataURL('image/png').substring(21);", canvas);
//TEST
byte[] imageByte = Base64.getDecoder().decode(imagenBase64.substring(1));
ByteArrayInputStream bis = new ByteArrayInputStream(imageByte);
BufferedImage image = ImageIO.read(bis);
bis.close();
File outputfile = new File("image.png");
ImageIO.write(image, "png", outputfile);
driver.close();
Ответ №1:
Я был в этой ситуации, добавьте больше временной задержки между действием и всплывающим окном, потому что обновление некоторых элементов DOM требует времени. Включение безголового режима требует большей задержки, чем его отключение.
Комментарии:
1. Спасибо, я пробую