3

Selenium firefox webdriver で Web ページを読み込んでいて、ページを 500% にズームインしています。次に、500% にズームインした解像度でページのスクリーンショットを撮りたいのですが、機能していません。

DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();
desiredCapabilities.setPlatform(Platform.WINDOWS);
WebDriver driver = new FirefoxDriver(desiredCapabilities);
driver.get(url);
driver.manage().window().setSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height));
WebElement html = driver.findElement(By.tagName("html"));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));

このコードは URL にズームインします。今、ズームインした解像度でスクリーンショットを撮りたいです。

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\"+url.substring(url.lastIndexOf("/"),url.lastIndexOf("."))+".png"));

これはスクリーンショットを撮っていますが、ズームインされた解像度ではなく、通常の解像度でのみ撮影されています。

セレンでそれを行う方法、またはセレンがこれに適したツールである場合でも、誰かが助けてください。そうでない場合は、私の要件に適した何かを提案してください。

4

2 に答える 2

1

これをテストできます:

String script = "var page = this;page.zoomFactor = 0.9;";
((PhantomJSDriver)driver).executePhantomJS(script);

zoomFactor はスクリーンショットをズームしました。

于 2016-01-25T07:21:57.423 に答える
0

以下のコードは私のために働いた。

    File scrFile2 = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    // Now you can do whatever you need to do with it, for example copy somewhere
    FileUtils.copyFile(scrFile2, new File("c:\\tmp\\screenshot.png"));

ページを開いて元のサイズでスクリーンショットを撮りましたが、手動でズームした後でもコード(ズーム用)を使用して、ズームされた解像度のスクリーンショットを取得しました。

于 2015-02-09T09:23:32.423 に答える