2016-06-20 7 views
2

注:この質問は数回前に尋ねられていますが、他の人には問題がないようです。Screenshot Seleniumの特定の要素

要素のポイントと幅と高さが正しく表示されているように見えますが、最終的なトリミングは正しくありません。それは私が取っているスクリーンショットのようなもので、ウェブページとは異なる次元を持っています。私はChromeのドライバーを使用しています。

これは、Googleのロゴ画像のスクリーンショットを取得しようとするために私のコードです:ここでは

WebDriver driver = new ChromeDriver(); 
driver.get("http://www.google.com"); 
WebElement ele = driver.findElement(By.id("hplogo")); 
//Get entire page screenshot 
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
BufferedImage fullImg = null; 
try { 
    fullImg = ImageIO.read(screenshot); 
} catch (IOException e) { 

} 
//Get the location of element on the page 
Point point = ele.getLocation(); 
//Get width and height of the element 
int eleWidth = ele.getSize().getWidth(); 
int eleHeight = ele.getSize().getHeight(); 
//Crop the entire page screenshot to get only element screenshot 
BufferedImage eleScreenshot = fullImg.getSubimage(point.getX(), point.getY(), eleWidth, 
       eleHeight); 
try { 
    ImageIO.write(eleScreenshot, "png", screenshot); 
} catch (IOException e) { 

} 
//Copy the element screenshot to disk 
File screenshotLocation = new File("/Users/M/Desktop/stuff/logo.png"); 
try{ 
    FileUtils.copyFile(screenshot, screenshotLocation); 
}catch(IOException e){ 

} 

は私の最後のロゴ画像は、次のとおりです。ここで enter image description here

はそれが同じように(取得する必要があるものですGIF以外のPNG): enter image description here

何が起こっている可能性がありますか?

+0

間違った画像が表示されますか?私のためにコードが完璧に動作するので – Madhan

+0

ええ、質問に画像を掲載しました。私はいくつかの要素についても試しました。それは私を本当に混乱させています。 Chrome Driverをお使いでしたか?あなたはどのバージョンのSeleniumを使用していますか? @Madhan – Mitchell

+0

これは正しい横幅と縦幅を得ていますが、スクリーンショットのズームや上のようなものでしょうか?それはポイントのようなもので、スクリーンショットの幅と高さはウェブページと同じではありません。 – Mitchell

答えて

0

オペレーティングシステムにカスタムスケーリングがあるかどうかを確認してください。私はウィンドウ上で125%のスケーリングを使って同じ問題を抱えていました。

関連する問題