Kuidas võtta pilt ja salvestada MSSQL andmebaasi Java ja Selenium Webriveri abil



See on selleks, et võtta pilt Selenium Webdriveri abil ja salvestada MS SQL andmebaasi. Pilt salvestatakse andmebaasi koos pildi nimega, millele on lisatud brauseri nimi, brauseri versioon, järjekorranumber ja stsenaariumi nimi. Seda koodi toetatakse Chrome, Firefox, Internet Explorer ja Safari.

Lingi 63-70 vahel on veel üks võimalus, et salvestada pilt kohalikku kausta, kui soovite. Kohalikus süsteemis saate määrata kausta ja see salvestab pildi kausta, mille olete määranud png-vormingus ja baitvormingus MSSql andmebaasis.

Võtke pilt ja salvestage MSSQL andmebaasi Java ja Selenium Webriveri abil

pakett com.main;

import java.awt.image.BufferedImage;

import java.io.Fail;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Kinnitused;

import java.util.concurrent.TimeUnit;

import javax.imageio.ImageIO;

import org.openqa.selenium.Võimalused;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesSc Mäng;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.remote.RemoteWebDriver;

avaliku klassi ImageSave {

privaatne staatiline int imageSeqNo = 0;

privaatne staatiline stringi stsenaarium;

privaatne staatiline WebDriveri brauserDriver;

privaatne staatiline brauserilaius;

isiklik staatiline brauserKõrgus;

avalik staatiline stringi brauser;

avalik staatiline WebDriveri draiver;

avalik static intBrowserWidth () {

brauseri laius;

}

avalik static intBrowserHeight () {

brauseri tagastamine;

}

avalik staatiline String getScenName () {

tagastamise stseeninimi;

}

avalik staatiline int getImageSeqNo () {

tagastage imageSeqNo;

}

public static void main (String [] args) viskab erandit {

// BrowserDriver.getCurrentDriver ();

}

public static void addSc Mäng (WebDriveri draiver) viskab IOExceptioni,

ClassNotFoundException, katkestatudException {

bait [] scrByte = getScreenShotBytes (draiver);

brauser = getBrowserAndVersion ();

String scenarioName = getScenName ();

String imageName = stsenaariumName + ”” + brauser + ””

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

Fail scrFile = getScreenShotFile (draiver);

String screenWidthHeight = getImageWidthHeight (scrFile);

// kui soovite salvestada ekraanipildi kohalikus süsteemis, lubage allolev rida

// FileUtils.copyFile (scrFile, uus fail (“C: // ekraanipilt //” + imageName));

insertImageDB (scrByte, stsenaariumNimi, imageName, screenWidthHeight,

brauser);

Thread.sleep (1000);

}

avalik staatiline String getImageWidthHeight (File imageFile) viskab IOException {

BufferedImage bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

kui (imageWidth! = 0) {

tagasipöördumine imageWidth + “x” + imageHeight;

} other {

tagastage “FullScreenx” + imageHeight;

}

}

avalik staatiline fail getScreenShotFile (WebDriveri draiver) {

// WebDriver draiverA = uus Augmenter ().

tagastamine ((TakesSc Mäng)) draiver) .getSc pētniecībasAs (OutputType.FILE);

}

avalik staatiline bait [] getScreenShotBytes (WebDriveri draiver) {

tagastamine ((TakesSc Mäng)) draiver) .getSc pētniecībasAs (OutputType.BYTES);

}

public static void insertImageDB (bait [] imageByte, stringi stsenaarium,

String imageName, String screenWidthHeight, String brauser)

viskab ClassNotFoundException {

Omadused dbProp = uued atribuudid ();

InputStream dbPropInput = null;

ResultSet rs = null;

PreparedStatement ps = null;

Connection con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (stseeninimi +) —- “+ brauser +” -

+ screenWidthHeight + ”—- Shot Number:“ + seqNo);

proovige {

String propPath = ". Src test ressursside abivahendid dbConnect.properties";

dbPropInput = uus FileInputStream (propPath);

dbProp.load (dbPropInput); // koormusfaili laadimine

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

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

String stPro = (dbProp.getProperty (“SPSql”));

Klass.Nimi (dbDriver);

con = DriverManager.getConnection (dbURL);

ps = con.prepareStatement (stPro);

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

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

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

ps.setEscapeProcessing (true);

ps.setQueryTimeout (90); // timeout väärtus võib hiljem välja lülitada, pilt

ps.setString (1, “Projekt”);

ps.setString (2, stseeninimi);

ps.setString (3, brauser);

ps.setString (4, screenWidthHeight);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, imageName);

ps.setBytes (8, imageByte);

// kommenteerige allpool rida, et keelata andmebaasi uuendamine

ps.executeUpdate ();

} saak (IOException e) {

e.printStackTrace ();

} saak (SQLException e) {

e.printStackTrace ();

} lõpuks {

proovige {

kui (dbPropInput! = null)

dbPropInput.close ();

kui (rs! = null)

rs.close ();

kui (ps! = null)

ps.close ();

kui (con! = null)

con.close ();

} saak (erand e) {

e.printStackTrace ();

}

}

}

avalik staatiline String getBrowserAndVersion () {

String browser_version = null;

Võimed cap = ((RemoteWebDriver) draiver) .getCapabilities ();

String browserername = cap.getBrowserName ();

// See plokk, et leida IE versiooni number

kui (“Internet Explorer” .equalsIgnoreCase (brauseri nimi)) {

String uAgent = (String) ((JavascriptExitoror) draiver)

.executeScript („tagasipöördumine navigator.userAgent;”);

System.out.println (uAgent);

// uAgent tagastatakse kui "MSIE 8.0 Windows" IE8 jaoks

kui (uAgent.contains (“MSIE”) && uAgent.contains (“Windows”)) {

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

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

} else if (uAgent.contains (“Trident / 7, 0”)) {

browser_version = “11.0”;

} other {

browser_version = “00”;

}

} other {

// Firefoxi ja Chrome'i brauseri versioon

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

}

Stringiga brauserivahetus = brauseri_versioon.substring (0,

browser_version.indexOf (“.”));

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

tagastamine ((brauseri nimi) + “_” + bVersion);

}

avalik staatiline String browserNameConvert (String brauseri_nimi) {

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

brauseri_nimi, „explorer”)) {

tagastage „IE”;

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

brauseri_nimi, „firefox”)) {

tagastama “FF”;

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

brauseri_nimi, „kroom”)) {

tagastage “CH”;

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

brauseri_nimi, „safari”)) {

tagastage “SF”;

} other {

tagastage „NA”;

}

}

}

MSSQL andmebaasiühenduse omadusfail, millel on kasutaja volitused ja salvestusprotseduur

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

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = jdbc: sqlserver: // YOURSERVERURL; andmebaas = DATABASENAME; kasutaja = USERNAME; parool = SALASÕNA

SPSql = {kõne STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)}

Andmebaasi salvestamiseks on selles näites juba loodud salvestusprotseduur ja kõik need andmed andmebaasi ühendamise ja salvestamise protseduuri kohta loetletud kinnisvara failis.

Brauseri nimi, mis teisendab 2 lühikest vormi, nagu FF (Firefox), CH (Chrome) jne. Samuti on see võimeline leidma brauseriversiooni programmiliselt, sealhulgas Internet Exploreri versiooninumbrit. See skript toetab Internet Exploreri versioone 8, 9, 10, 11.

Eelmine Artikkel

Kuidas Gmailis e-posti blokeerida / blokeerida?

Kuidas Gmailis e-posti blokeerida / blokeerida?

Kas olete väsinud rämpsposti ja reklaami e-posti teel? Kas soovite blokeerida mõned nendest kirjadest, mis jõuavad teie postkasti? E-kirjade ja plokkide filtreerimiseks on lihtne lahendus. See samm kirjeldab e-kirja automaatset kustutamist konkreetselt saatjalt Gmaili ID-le. Gmailis e-posti blokeerimiseks on kaks meetodit. Es...

Järgmine Artikkel

6 lihtsat lahendust failide edastamiseks Androidi ja Windowsi vahel

6 lihtsat lahendust failide edastamiseks Androidi ja Windowsi vahel

Androidi failiedastuse Windowsi kasutajatele on mitmeid meetodeid. Enamik kasutajaid soovib faile, näiteks fotosid, videoid või andmefaile üle kanda. Failitüübi ja suuruse alusel failide edastamiseks Androidist Windows arvutisse on erinevaid lahendusi. Enamik lahendusi on head, et toetada Androidi omanikke Windows 7/8/10 kasutajatega. Sam...