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

Hur skapar du Google Forms Online för ditt företag?

Hur skapar du Google Forms Online för ditt företag?

Det är ganska enkelt att ställa in en Google-blankett och någon kan göra det utan någon kodande upplevelse. Innan vi börjar det måste vi slutföra de frågor som ska ställas och vilken typ av svar som förväntas. Det finns olika typer av fält tillgängliga i designfasen av Google Forms. Till exempel: Flera val, kryssrutor, nedrullning och det vanliga korta svaret, långa svarfält. Dessa alternat...

Nästa Artikel

Hur hittar du en e-post avsändares plats?

Hur hittar du en e-post avsändares plats?

Facebook Twitter Pinterest WhatsApp Telegram Det finns flera anledningar som du vill kontrollera legitimiteten för en e-post som du mottog. Med ökande skräppost och bedrägerier är det nödvändigt att se till att du svarar på rätt person. Den här e-postadressidentifieraren kan ge dig en uppfattning om avsändarplatsen och spara dig från potentiella spam-e-postmeddelanden. Det är enk...