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

8 Parimad Android-rakendused Chromebooki uutele kasutajatele

8 Parimad Android-rakendused Chromebooki uutele kasutajatele

Chromebookide Android-rakendused on olnud juba mõnda aega saadaval. Nad kannatavad endiselt põhiprobleemiga, mida nad tegid (ikka veel) Android-tablettidel. Enamik Android-rakendusi ei kasuta suuremat ekraani ära ja neid ei ole maastikurežiimi jaoks optimeeritud. Loomulikult ei ole Chrome OS-i toetamiseks ka palju Android-rakendusi. Ch...

Järgmine Artikkel

Kuidas saata krüpteeritud või parooliga kaitstud e-kirju tasuta?

Kuidas saata krüpteeritud või parooliga kaitstud e-kirju tasuta?

Facebook Twitter Pinterest WhatsApp Telegramm Me kasutame tasuta e-posti kontosid kas Gmaili, Yahoo, AOL või Hotmaili kontodelt. Kahjuks ei paku ükski neist funktsiooni, et saata teie kontolt turvalist e-posti või parooliga kaitstud e-posti. Turvaline e-post on oluline funktsioon, kui edastate oma kontaktidele tundliku teabe e-posti teel. K...