Schüler, die Webdriver verwendet haben, wissen, dass Webdriver einen Screenshot der Seite im Browser aufnehmen kann. Zum Beispiel:
public byte [] takescreenshot () löscht ioException {takessscreenshot takessScreenshot = (TakessScreenshot) Treiber;
Das auf diese Weise produzierte Bild ist die gesamte Webseite. Aber manchmal brauchen wir nicht die gesamte Webseite, wir brauchen nur ein spezifisches Webelement, um eine gewisse Störungen zu vermeiden.
Obwohl Webdriver selbst keine solchen APIs liefert, können wir alleine kommen, einfach in den Screenshot des Vollbildes wie folgt einschneiden:
Public bufferedImage createlementImage (Webelement WebElement) löst IOException (// die Position und Größe des Webelements ab. Point locum = webelement.getlocation (); Bufferedimage originalImage = imageio.ream BuffRedimage croppedimage = originalImage.getSubimage (Locality.getX (), localtion.get (), size.getWidth (), size.getheight ());
Das Imageio und das BufferedImage stammen von javax.imageio bzw. java.awt.image.
Diese Methode kann die Größe des Screenshots gut verringern und einige ungewisse Faktoren (wie Daten usw.) vermeiden, was eine gute Möglichkeit ist, Screenshots im Test zu sparen.
Hinweis: Wenn die Testwebseite IFrame enthält, müssen Sie die Position des Webelements auf kompliziertere Weise berechnen.