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 Google'i otsinguriba Android-ekraanil tagasi saada?

Kuidas Google'i otsinguriba Android-ekraanil tagasi saada?

Kas teil on Samsungi või LG või Pixel Android telefonid, on Google'i otsinguriba teie Android mobiiltelefoni avakuval. Sa võid kogemata eemaldada selle Google'i otsinguriba avakuval või kustutada rakenduse. Me toetume nüüd Google'ile ja seejärel ülesannete, uuenduste ja ajakava koostamisele. Google...

Järgmine Artikkel

6 Parimad lauatelefoni kõne blokeerimisseadmed Robocalls'i blokeerimiseks

6 Parimad lauatelefoni kõne blokeerimisseadmed Robocalls'i blokeerimiseks

Pildi krediit: Amazon Rämpspostikõned ohustavad maapealsete telefonidega palju, sest nad on haavatavad ja ei suuda seda lihtsat blokeerida. Isegi maa telefoniteenuse pakkujad nagu AT & T ja Verizon pakuvad lauatelefoni kõne blokeerijaid. Nüüd edastatakse kõne blokeerimise funktsioon pühendatud telefonikõne ID-seadmetele, mis on RoboCalls'i ja rämpsposti kõnede blokeerimise täpsusega. Siin loet...