Kako narediti Screenshot in Shrani v MSSQL Database z uporabo Java in Selenium Webriver



To je, da Screenshot z uporabo Selenium Webdriver in shraniti v MS SQL Database. Slika se shrani v podatkovni zbirki z imenom slike, ki je dodano ime brskalnika, različica brskalnika, zaporedna številka in ime scenarija. Ta koda podpira Chrome, Firefox, Internet Explorer in Safari.

Med vrstico 63-70 je na voljo še ena možnost, da sliko shranite v lokalno mapo, če želite. V lokalnem sistemu lahko nastavite mapo in shranite sliko v mapo, ki ste jo podali v formatu png, in obliko bajtov v podatkovni bazi MSSql.

Vzemite Screenshot in shranite na MSSQL Database z uporabo Java in Selenium Webriver

paket com.main;

uvoz java.awt.image.BufferedImage;

uvoz java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

uvoz java.sql.Connection;

uvoz java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

uvoz java.sql.SQLException;

import java.util.Properties;

import java.util.concurrent.TimeUnit;

uvoz javax.imageio.ImageIO;

import org.openqa.selenium.Capabilities;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.remote.RemoteWebDriver;

javni razred ImageSave {

zasebna statična int imageSeqNo = 0;

zasebno statično String scenName;

zasebni statični brskalnik WebDriverDriver;

zasebna statična int browserWidth;

zasebno statično int browserHeight;

javni statični brskalnik String;

javni statični gonilnik WebDriver;

javni statični int getBrowserWidth () {

vrnitev browserWidth;

}

javni statični int getBrowserHeight () {

vrne brskalnik; višina;

}

javni statični String getScenName () {

vrnitev scenName;

}

javna statična int getImageSeqNo () {

return imageSeqNo;

}

public static void main (String [] args) vrže Exception {

// BrowserDriver.getCurrentDriver ();

}

javni statični void addScreenshot (gonilnik WebDriver) vrže IOException,

ClassNotFoundException, InterruptedException {

byte [] scrByte = getScreenShotBytes (gonilnik);

browser = getBrowserAndVersion ();

String scenarijName = getScenName ();

String imageName = scenarioName + ”” + brskalnik + ””

+ System.currentTimeMillis () + “.png”;

Datoteka scrFile = getScreenShotFile (gonilnik);

Niz screenWidthHeight = getImageWidthHeight (scrFile);

// če želite shraniti sliko posnetka zaslona v lokalnem sistemu, omogočite spodnjo vrstico

// FileUtils.copyFile (scrFile, nova datoteka (“C: // screenshot //” + imageName));

insertImageDB (scrByte, scenarioName, imageName, screenWidthHeight,

brskalnik);

Thread.sleep (1000);

}

public static String getImageWidthHeight (Datoteka FileFile) vrže IOException {

BufferedImage bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

if (imageWidth! = 0) {

return imageWidth + “x” + imageHeight;

} else {

vrnite »FullScreenx« + imageHeight;

}

}

javna statična datoteka getScreenShotFile (gonilnik WebDriver) {

// gonilnik WebDriver = novi Augmenter (). Augment (driver);

return ((TakesScreenshot) gonilnik) .getScreenshotAs (OutputType.FILE);

}

javni statični bajt [] getScreenShotBytes (gonilnik WebDriver) {

return ((TakesScreenshot) gonilnik) .getScreenshotAs (OutputType.BYTES);

}

javna statična void insertImageDB (bajt [] imageByte, niz scenName,

String imageName, String screenWidthHeight, String browser)

metov ClassNotFoundException {

Lastnosti dbProp = new Properties ();

InputStream dbPropInput = null;

ResultSet rs = null;

PreparedStatement ps = null;

Povezava con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scenName + ”—-“ + brskalnik + ”—-“)

+ screenWidthHeight + ”—– Število posnetkov:“ + seqNo);

poskusi {

String propPath = “. \ T

dbPropInput = novo FileInputStream (propPath);

dbProp.load (dbPropInput); // naloži datoteko lastnosti

Niz dbDriver = (dbProp.getProperty (“dbDriver”));

Niz dbURL = (dbProp.getProperty (“dbURL”));

Niz 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 = novo java.sql.Timestamp (date.getTime ());

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

ps.setEscapeProcessing (true);

ps.setQueryTimeout (90); // vrednost zakasnitve lahko kasneje onemogočite, slika

ps.setString (1, “Projekt”);

ps.setString (2, scenName);

ps.setString (3, brskalnik);

ps.setString (4, screenWidthHeight);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, imageName);

ps.setBytes (8, imageByte);

// komentar pod vrstico, da onemogočite posodabljanje baze podatkov

ps.executeUpdate ();

} catch (IOException e) {

e.printStackTrace ();

} catch (SQLException e) {

e.printStackTrace ();

} končno {

poskusi {

if (dbPropInput! = null)

dbPropInput.close ();

če (rs! = null)

rs.close ();

če (ps! = null)

ps.close ();

če (con! = null)

con.close ();

} catch (Exception e) {

e.printStackTrace ();

}

}

}

javni statični String getBrowserAndVersion () {

String browser_version = null;

Capabilities cap = ((RemoteWebDriver) gonilnik) .getCapabilities ();

Vrstica brskalnika = cap.getBrowserName ();

// Ta blok za ugotavljanje številke različice IE

if ("internetni raziskovalec" .equalsIgnoreCase (brskalnikovo ime)) {

String uAgent = (String) (gonilnik Javascript)

.executeScript (“return navigator.userAgent;”);

System.out.println (uAgent);

// uAgent vrne kot "MSIE 8.0 Windows" za IE8

če (uAgent.contains (“MSIE”) && uAgent.contains (“Windows”)) {

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

uAgent.indexOf (“Windows”) - 2);

} tudi če (uAgent.contains (“Trident / 7.0”)) {

browser_version = “11.0”;

} else {

browser_version = “00”;

}

} else {

// Različica brskalnika za Firefox in Chrome

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

}

String browserversion = browser_version.substring (0,

browser_version.indexOf (“.”));

Niz bVersion = String.format (“% 02d”, Integer.parseInt (browserversion));

vrnitev ((uporabniško ime brskalnika) + „_“ + bVersion);

}

javni statični String browserNameConvert (String browser_name) {

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

browser_name, “explorer”)) {

vrnite „IE“;

} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, “firefox”)) {

vrne “FF”;

} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, “chrome”)) {

vrnitev "CH";

} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, “safari”)) {

vrnitev »SF«;

} else {

vrnitev »NA«;

}

}

}

Datoteka z MSSQL povezavo baze podatkov z uporabniškimi poverilnicami in postopkom shranjevanja

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

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = jdbc: sqlserver: // YOURSERVERURL; database = DATABASENAME; uporabnik = USERNAME; geslo = Geslo

SPSql = {pokličite STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)?

Če želite shraniti v bazo podatkov, je postopek shranjevanja že ustvarjen v tem primeru in vsi ti podatki za povezavo baze podatkov in postopek shranjevanja so navedeni v datoteki lastnosti.

Ime brskalnika se pretvori v 2 kratke kratke obrazce, kot so FF (Firefox), CH (Chrome) itd. To je tudi zmožno iskati različico brskalnika, ki je programsko vključena, vključno s številko različice Internet Explorerja. Ta skript podpira različice Internet Explorerja 8, 9, 10, 11.

Prejšnji Članek

7 Brezplačne iOS Chromecast igre za predvajanje na televiziji

7 Brezplačne iOS Chromecast igre za predvajanje na televiziji

ChromeCast je naprava, ki prinaša vaše dnevne medijske izkušnje z uporabo preprostih aplikacij ChromeCast iz vašega iPhone, prenosnega računalnika, tabličnega računalnika ali katere koli druge pametne naprave na velik zaslon vašega doma. Vsakdo ima rad v medijih na velikem zaslonu, ne glede na to, ali gre za film, predstavitev ali celo igro, večji, boljši in da bi služil temu namenu, je ChromeCast tukaj. Obstaja n...

Naslednji Članek

CleanMyMac X Review: Očistite vaš Mac v nekaj klikih

CleanMyMac X Review: Očistite vaš Mac v nekaj klikih

Poleg vgrajenih funkcij za upravljanje varnosti in shranjevanja operacijskega sistema Mac, obstaja veliko drugih ponudnikov, ki ponujajo odlične rešitve za vse v enem, z enim klikom, da se znebite neželenih datotek in izpolnite ranljivosti vašega Macbooka ali Sistemi iMac. Večina jih ima višjo ceno, cenejši pa imajo zelo malo funkcij. Clean...