0

Ich habe einen PC mit zwei Monitoren und ich möchte Screenshots von zwei Monitoren erfassen. Ich benutze den folgenden Code und es fängt den Screenshot nur vom ersten Monitor ein, aber nicht vom zweiten.Selen - Um Screenshots von zwei Monitoren zu erfassen

public void getScreenshotThroughRobot(String filename) throws IOException, AWTException { 
    Robot robot = new Robot(); 
    String format = "jpg"; 
    filename = filename + "-FullScreenshot." + format; 

    Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); 
    BufferedImage screenFullImage = robot.createScreenCapture(screenRect); 
    ImageIO.write(screenFullImage, format, new File(filename)); 
} 

Wenn mein Browser in ersten Monitor geöffnet, Screen-Capture ist gut, aber wenn es in der zweiten geöffnet dann wird es Screenshot aus dem ersten Monitor nimmt nur.

Entweder muss es Screenshots von 2 Monitoren oder von dem aktiven, wo der Browser vorhanden ist, erfassen.

Jede Hilfe wäre willkommen!

Antwort

0

versuchen, etwas wie folgt aus:

if (driver instanceof TakesScreenshot) { 
    TakesScreenshot ts = (TakesScreenshot) driver; 
    File screenshotFile = ts.getScreenshotAs(OutputType.FILE); 
    //feel free to move or rename the file as you see fit. 
}else{ /* unsupported*/ } 

Meiner Erfahrung nach nimmt dies den Screenshot des Browsers nur, aber dies durch den Fahrer unterscheiden.

BEARBEITEN ZUM HINZUFÜGENdriver ist eine Instanz von WebDriver. Es ist ein wenig unklar von deiner Frage, ob dies das ist, was du tust. Wenn dies nicht der Fall ist und Sie Ihren Selengebrauch klären können, werde ich versuchen zu helfen.

+0

Ich habe das schon ausprobiert und es war sogar schlimmer, ich bekam einen leeren Screenshot. – CARE

+0

Hmm, schlage vor, dass Sie mit dem obigen Ansatz herumspielen. Scheint die mehr Vanille-Option zu sein und macht Sinn für mich. Wie läuft der Browser? Wenn es kopflos ist, können Sie dieses Problem bekommen. – Taylor