Когда я запускаю java файл jar, все нормально, при запуске того же самого jar в Task Sheduler, есть некоторые проблемы - PullRequest
0 голосов
/ 10 июля 2019

Я написал программу на Java, которая, откройте браузер, сделайте скриншот и сохраните этот скриншот. Чтобы сделать снимок большей части экрана, я уменьшил масштаб экрана до 75%. Если я запускаю свой файл нормально (просто нажимаю в запущенном фляге), все в порядке. Но когда я запускаю свой jar-файл в диспетчере задач, программа не учитывает масштабирование и делает скриншот в нормальном размере (100%). Я много раз проверял и все делал правильно.

Это часть моего кода, которая находит элемент сбоку, проходит в это место, увеличивает масштаб до 75%, ждет 3 секунды и делает скриншот.

WebElement element = driver.findElement(By.xpath("/html/body/grafana-app/div[2]/div/div[1]/div/div/div[1]/dashboard-grid/div/div[2]/div/plugin-component/panel-plugin-singlestat/grafana-panel/div/div[2]/ng-transclude/div"));
            ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element); //find element by xpath and move there 
            JavascriptExecutor executor = (JavascriptExecutor)driver;
            executor.executeScript("document.body.style.zoom = '0.75'"); // change zoom in browser to 75%
            Thread.sleep(3000);
            doScreenShot(); // function which do screenshot



\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

private static void doScreenShot()
    {
        // doing a screenshot
                    File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

                    try {
                        // now copy the  screenshot to desired location using copyFile //method
                        FileUtils.copyFile(src, new File("C:/Users/pl-admin-gm3/Desktop/DailyReports/Urls Health/Screenshots/"+ serverNames[i] +" - " + j +".png"));
                        j++;
                        }

                    catch (IOException e)
                    {
                        System.out.println(e.getMessage());

                    }
    }


1 Ответ

0 голосов
/ 11 июля 2019

попробуйте использовать sendkeys,

    driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,Keys.SUBTRACT)); // Set to 90%
driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,Keys.SUBTRACT)); // Set to 80%

или изменить размер окна, если приложение автоматически настраивается,

driver.get().manage().window().setSize(new Dimension(width, height));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...