550 Stimmen

Wie kann ich mit Selenium WebDriver einen Screenshot erstellen?

Ist es möglich, einen Screenshot mit Selenium WebDriver zu erstellen?

(Anmerkung: Nicht Selenium-Fernbedienung )

2voto

Raghuveer Punkte 115

Java

public void captureScreenShot(String obj) throws IOException {
    File screenshotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(screenshotFile, new File("Screenshots\\" + obj + "" + GetTimeStampValue() + ".png"));
}

public String GetTimeStampValue()throws IOException{
    Calendar cal = Calendar.getInstance();
    Date time = cal.getTime();
    String timestamp = time.toString();
    System.out.println(timestamp);
    String systime = timestamp.replace(":", "-");
    System.out.println(systime);
    return systime;
}

Mit diesen beiden Methoden können Sie auch ein Bildschirmfoto mit Datum und Uhrzeit erstellen.

2voto

Yerram Naveen Punkte 286

Java

String yourfilepath = "E:\\username\\Selenium_Workspace\\foldername";

// Take a snapshort
File snapshort_file = ((TakesScreenshot) mWebDriver)
        .getScreenshotAs(OutputType.FILE);
// Copy the file into folder

FileUtils.copyFile(snapshort_file, new File(yourfilepath));

2voto

djangofan Punkte 26852

Java

Mit RemoteWebDriver würde ich, nachdem ich den Node mit Screenshot-Fähigkeit erweitert habe, den Screenshot wie folgt speichern:

void takeScreenShotMethod(){
    try{
        Thread.sleep(10000);
        long id = Thread.currentThread().getId();
        BufferedImage image = new Robot().createScreenCapture(new Rectangle(
            Toolkit.getDefaultToolkit().getScreenSize()));
        ImageIO.write(image, "jpg", new File("./target/surefire-reports/"
            + id + "/screenshot.jpg"));
    }
    catch( Exception e ) {
        e.printStackTrace();
    }
}

Sie können diese Methode bei Bedarf anwenden. Ich gehe davon aus, dass Sie die Formatvorlage des maven-surefire-report-plugin unter surefire-reports/html/custom.css so anpassen können, dass Ihre Berichte den Link zum richtigen Screenshot für jeden Test enthalten?

1voto

jotrocken Punkte 2163

Roboter-Rahmenwerk

Hier ist eine Lösung unter Verwendung des Robot Frameworks mit dem Selenium2Bibliothek :

*** Settings ***
Library                        Selenium2Library

*** Test Cases ***
Example
    Open Browser               http://localhost:8080/index.html     firefox
    Capture Page Screenshot

Dadurch wird ein Bildschirmfoto im Arbeitsbereich gespeichert. Es ist auch möglich, einen Dateinamen für das Schlüsselwort Capture Page Screenshot um dieses Verhalten zu ändern.

1voto

RosAng Punkte 970

Sie können eine webdriverbacked selenium object unter Verwendung der Webdriver Klassenobjekts und können dann einen Screenshot machen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X