Selenium ChromeDriver getPageSource () не работает в автономном режиме - PullRequest
0 голосов
/ 15 ноября 2018

Когда я устанавливаю ChromeDriver в режиме без головы, он не может получить источник страницы каким-либо образом. GetPageSource () работает, когда я устанавливаю драйвер в режиме без заголовка.

Вот мой код:

String pageSource = "";
try {
                System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
                System.setProperty("webdriver.chrome.silentOutput", "true");
                System.setProperty("webdriver.chrome.logfile", "/dev/null");
                java.util.logging.Logger.getLogger("org.openqa.selenium").setLevel(Level.OFF);

                ChromeOptions chromeOptions = new ChromeOptions();
                //chromeOptions.setBinary("/usr/bin/chromium");
                //chromeOptions.addArguments("--headless");
                chromeOptions.setHeadless(true);
                chromeOptions.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
                driver = new ChromeDriver(chromeOptions);

                if(driver!=null) {
                    WebDriverWait wait = new WebDriverWait(driver, 60);
                    wait.until(ExpectedConditions.visibilityOfElementLocated(By.tagName("body")));
                driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
                driver.get(link);
                pageSource = driver.getPageSource();
                driver.quit();
                }

                } catch(TimeoutException te) {
                        //te.printStackTrace();
                } catch (UnhandledAlertException eae) {
                    try {
                        Alert alert = driver.switchTo().alert();
                        String alertText = alert.getText();
                        System.out.println("Alert data: " + alertText);
                        alert.accept();
                    } catch (NoAlertPresentException e) {
                       // e.printStackTrace();
                    }
                } catch (WebDriverException wde) {
                    //wde.printStackTrace();
                }

Я уже пытался получить исходный код другими способами, например, с использованием JavaScript, но результат тот же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...