Os alunos que usaram o WebDriver sabem que o WebDriver pode tirar uma captura de tela da página no navegador. Por exemplo:
public byte [] TakesCreenshot () lança IoException {TakessScreenshot TakessScreenshot = (TakessScreenshot) Driver;
A imagem produzida dessa maneira é a página inteira. Mas às vezes não precisamos de toda a página da Web, precisamos apenas de algum webElement específico para evitar alguma interferência.
Embora o próprio Webdriver não forneça essas APIs, podemos vir por nós mesmos, basta cortar a captura de tela da tela cheia, como segue:
Public bufferiMage CreateElementImage (webElement webElement) lança IoException {// obtenha a posição e o tamanho do webElement. Point Location = WebElement.getLocation (); BufferImage originalImage = imageio.ream BuffredImage croppedImage = originalImage.getSubimage (locality.getx (), localtion.get (), size.getwidth (), size.getHeight ());
O imageio e o bufferiMage são de javax.imageio e java.awt.image, respectivamente.
Esse método pode reduzir bem o tamanho da captura de tela e também evitar alguns fatores incertos (como datas, etc.), que é uma boa maneira de salvar capturas de tela no teste.
Nota: Se a página da Web de teste contiver o IFRAM, você precisará calcular a posição do WebElement de uma maneira mais complicada.