HINWEIS: Mir ist bewusst, dass diese Frage vor ein paar Mal gestellt wurde, aber ich habe ein Problem, das andere nicht zu haben scheinen.Screenshot spezifisches Element mit Selen
Obwohl ich den Punkt des Elements mit seiner Breite und Höhe richtig zu bekommen scheint, ist der endgültige Zuschnitt falsch. Es ist wie der Screenshot, den ich nehme, hat andere Dimensionen als die Webseite. Ich verwende den Chrome-Treiber.
Dies ist mein Code für den Versuch, einen Screenshot des Google-Logo-Bild zu bekommen:
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){
}
Hier ist meine endgültige Logo Bild:
Hier ist, was sollte es bekommen (wie ein png nicht als gif):
Hat jemand eine Idee, was könnte los sein?
Sind Sie sicher, dass Sie ein falsches Bild erhalten? Denn für mich funktioniert der Code einwandfrei – Madhan
Ja ich habe das Bild in der Frage gepostet. Ich habe auch verschiedene Elemente ausprobiert. Es verwirrt mich wirklich. Haben Sie den Chrome-Treiber verwendet? Welche Version von Selen benutzt du? @Madhan – Mitchell
Es ist die richtige Breite und Höhe scheint es, aber es ist wie Zoomen auf oder etwas auf dem Screenshot? Es ist wie der Punkt und Breite und Höhe des Screenshots sind nicht identisch mit der Webseite. – Mitchell