Så här tar du skärmdump och sparar i MSSQL-databasen med Java och Selen Webriver



Det här är att ta skärmdump med Selenium Webdriver och spara i MS SQL Database. Bilden sparas i databasen med bildnamnstillägget med webbläsarens namn, webbläsarversion, sekvensnummer och scenarians namn. Den här koden stöds Chrome, Firefox, Internet Explorer och Safari.

Det finns ytterligare ett alternativ mellan rad 63-70 för att spara bilden i en lokal mapp om du vill. Du kan ställa in en mapp i det lokala systemet och det sparar bilden i mappen du angav i png-format och byteformat i MSSql-databasen.

Ta skärmdump och spara till MSSQL-databasen med Java och Selen Webriver

paketet com.main;

importera java.awt.image.BufferedImage;

importera java.io.File;

importera java.io.FileInputStream;

importera java.io.IOException;

importera java.io.InputStream;

importera java.sql.Connection;

importera java.sql.DriverManager;

importera java.sql.PreparedStatement;

importera java.sql.ResultSet;

importera java.sql.SQLException;

importera java.util.Properties;

importera java.util.concurrent.TimeUnit;

importera javax.imageio.ImageIO;

importera org.openqa.selenium.Capabilities;

importera org.openqa.selenium.JavascriptExecutor;

importera org.openqa.selenium.OutputType;

importera org.openqa.selenium.TakesScreenshot;

importera org.openqa.selenium.WebDriver;

importera org.openqa.selenium.remote.RemoteWebDriver;

offentlig klass ImageSave {

privat statisk int imageSeqNo = 0;

privat statisk String scenName;

privat statisk WebDriver browserDriver;

privat statisk int-browserWidth;

privat statisk int-browserHight;

offentlig statisk String-webbläsare;

offentlig statisk WebDriver-drivrutin;

offentliga statiska int getBrowserWidth () {

returnera browserWidth;

}

offentliga statiska int getBrowserHeight () {

returnera browserHeight;

}

offentlig statisk String getScenName () {

retur scenName;

}

offentliga statiska int getImageSeqNo () {

returnera bildSeqNo;

}

statisk statisk tomt huvud (sträng [] args) kastar undantag {

// BrowserDriver.getCurrentDriver ();

}

offentlig statisk tomt addScreenshot (WebDriver-drivrutin) kastar IOException,

ClassNotFoundException, InterruptedException {

byte [] scrByte = getScreenShotBytes (drivrutin);

webbläsare = getBrowserAndVersion ();

String scenarioName = getScenName ();

String imageName = scenarioName + "" + webbläsare + ""

+ System.currentTimeMillis () + ".png";

Fil scrFile = getScreenShotFile (drivrutin);

String screenWidthHeight = getImageWidthHeight (scrFile);

// Om du vill spara skärmbilden i det lokala systemet, aktivera raden nedan

// FileUtils.copyFile (scrFile, ny fil ("C: // screenshot //" + imageName));

insertImageDB (scrByte, scenarioName, imageName, screenWidthHeight,

webbläsare);

Thread.sleep (1000);

}

statisk statisk sträng getImageWidthHeight (File imageFile) slår IOException {

BufferedImage bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

om (imageWidth! = 0) {

returnera imageWidth + "x" + imageHeight;

} annat {

returnera "FullScreenx" + imageHeight;

}

}

offentlig statisk fil getScreenShotFile (WebDriver-drivrutin) {

// WebDriver driverA = new Augmenter (). Augment (driver);

returnera ((TakesScreenshot) drivrutin) .getScreenshotAs (OutputType.FILE);

}

offentliga statiska byte [] getScreenShotBytes (WebDriver-drivrutin) {

returnera ((TakesScreenshot) drivrutin) .getScreenshotAs (OutputType.BYTES);

}

statisk statisk tomhet insertImageDB (byte [] imageByte, String scenName,

String imageName, String screenWidthHight, String-webbläsare)

kastar ClassNotFoundException {

Egenskaper dbProp = Nya Egenskaper ();

InputStream dbPropInput = null;

ResultatSet rs = null;

PreparedStatement ps = null;

Anslutning con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scennamn + "-" + webbläsare + "-"

+ screenWidthHeight + "- Skottnummer:" + seqNo);

Prova {

String propPath = ". \ Src \ test \ resurser \ rekvisita \ dbConnect.properties";

dbPropInput = nytt FileInputStream (propPath);

dbProp.load (dbPropInput); // ladda egenskapsfilen

String dbDriver = (dbProp.getProperty ("dbDriver"));

String dbURL = (dbProp.getProperty ("dbURL"));

String stPro = (dbProp.getProperty ("SPSql"));

Class.forName (dbDriver);

con = DriverManager.getConnection (dbURL);

ps = con.prepareStatement (stPro);

java.util.Date date = new java.util.Date ();

java.sql.Timestamp sqlTimestamp = ny java.sql.Timestamp (date.getTime ());

System.out.println ("Image Timestamp =" + sqlTimestamp);

ps.setEscapeProcessing (true);

ps.setQueryTimeout (90); // timeout-värde kan inaktivera senare bild

ps.setString (1, "Project");

ps.setString (2 scennamn);

ps.setString (3, webbläsare);

ps.setString (4, skärmviddHight);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, bildnamn);

ps.setBytes (8, imageByte);

// kommentar under rad för att inaktivera databasuppdatering

ps.executeUpdate ();

} fånga (IOException e) {

e.printStackTrace ();

} fånga (SQLException e) {

e.printStackTrace ();

} till sist {

Prova {

om (dbPropInput! = null)

dbPropInput.close ();

om (rs! = null)

rs.close ();

om (ps! = null)

ps.close ();

om (con! = null)

con.close ();

} fånga (Undantag e) {

e.printStackTrace ();

}

}

}

offentliga statiska String getBrowserAndVersion () {

String browser_version = null;

Kapacitets cap = ((RemoteWebDriver) drivrutin) .getCapabilities ();

String browsername = cap.getBrowserName ();

// Detta block för att ta reda på IE Versionsnummer

om ("internet explorer" .equalsIgnoreCase (webbläsarnamn)) {

String uAgent = (String) ((JavascriptExecutor) drivrutin)

.executeScript ("returnera navigator.userAgent;");

System.out.println (uAgent);

// uAgent returnera som "MSIE 8.0 Windows" för IE8

om (uAgent.contains ("MSIE") && uAgent.contains ("Windows")) {

browser_version = uAgent.substring (uAgent.indexOf ("MSIE") + 5,

uAgent.indexOf ("Windows") - 2);

} annars om (uAgent.contains ("Trident / 7.0")) {

browser_version = "11.0";

} annat {

browser_version = "00";

}

} annat {

// Browser version för Firefox och Chrome

browser_version = cap.getVersion (); // .split (".") [0];

}

String browserversion = browser_version.substring (0,

browser_version.indexOf ( ””));

String bVersion = String.format ("% 02d", Integer.parseInt (browserversion));

returnera ((browsernamn) + "_" + bVersion);

}

offentlig statisk String browserNameConvert (String browser_name) {

om (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, "explorer")) {

returnera "IE";

} annars om (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, "firefox")) {

returnera "FF";

} annars om (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, "chrome")) {

returnera "CH";

} annars om (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, "safari")) {

returnera "SF";

} annat {

returnera "NA";

}

}

}

MSSQL-databasanslutning Egenskapsfil med användaruppgifter och lagringsprocedur

################## dbConnect.properties ##################

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = jdbc: SQLServer: // YOURSERVERURL; databas = database; user = NAME; password = LÖSENORD

SPSql = {call STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)}

För att spara i databasen är affärsproceduren som redan skapats i det här exemplet och alla dessa data för databasanslutning och lagringsproceduren listade i egenskapsfilen.

Webbläsarens namn konverterar till 2 char korta former som FF (Firefox), CH (Chrome) etc. Det här kan också hitta webbläsareversion programmatiskt inklusive Internet Explorer versionsnummer. Det här skriptet stöder Internet Explorer-versioner 8, 9, 10, 11.

Tidigare Artikel

Bästa ljudverktyg för att skapa spelljud

Bästa ljudverktyg för att skapa spelljud

Tech värld är i värmen av E3, en av de största spelkonferensen där varje spelbolag kommer att introducera sina nya produkter till allmänheten varje år. Du kan vara upphetsad att se alla nya spännande spel och ivriga att prova dem själv. Eftersom vi är på spelområdet, låt oss gräva djupt. Vad gör ett ...

Nästa Artikel

Så här rensar du Sökhistorik för Cortana och Bing i Windows 10

Så här rensar du Sökhistorik för Cortana och Bing i Windows 10

Med utgåvan av Windows 10 har Cortana och Bing mer viktiga roller i hela operativsystemet. Sökorden i Cortana åberopar Bing Search Engine och resultaten visas. På samma sätt är sökord i Bing nu tillgängligt för Cortana för att lära sig att förstå användarnas val. Sökinformationen för både Cortana och Bing kombineras tillsammans i molnlagring nuförtiden. Om du rensar den...