Hogyan készítsünk képernyőt és mentse az MSSQL adatbázisba Java és Selenium Webriver használatával



Ezzel a Selenium Webdriver-t használjuk, és menthetjük az MS SQL adatbázisba. A kép az adatbázisban tárolja a kép nevét a böngésző nevével, a böngésző verziójával, a sorszámmal és a forgatókönyvnévvel együtt. Ezt a kódot támogatja a Chrome, a Firefox, az Internet Explorer és a Safari.

Egy további lehetőség van a 63-70 sor között, ha el akarja menteni a képet egy helyi mappába. Beállíthat egy mappát a helyi rendszerben, és elmenti a képet a png formátumban és a bájt formátumban megadott mappába az MSSql adatbázisban.

Töltse le a képet és mentse el az MSSQL adatbázisba Java és Selenium Webriver használatával

csomag com.main;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Kapcsolat;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Properties;

import java.util.concurrent.TimeUnit;

import javax.imageio.ImageIO;

import org.openqa.selenium.Kapacitások;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesSclays;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.remote.RemoteWebDriver;

nyilvános osztály ImageSave {

privát statikus int imageSeqNo = 0;

privát statikus karakterláncnév;

privát statikus WebDriver böngészőDriver;

privát statikus böngészőSzélesség;

saját statikus böngészőSzám;

nyilvános statikus karakterláncböngésző;

nyilvános statikus WebDriver illesztőprogram;

nyilvános statikus int getBrowserWidth () {

böngészőhosszúság;

}

public static int getBrowserHeight () {

a böngésző visszatérése;

}

nyilvános statikus karakterlánc getScenName () {

visszatérési szcenév;

}

nyilvános statikus int getImageSeqNo () {

imageSeqNo visszatérése;

}

public static void main (String [] args) dobja a kivételt {

// BrowserDriver.getCurrentDriver ();

}

public static void addSc äriühing (WebDriver illesztőprogram) IOException-t dob,

ClassNotFoundException, InterruptedException {

bájt [] scrByte = getScreenShotBytes (illesztőprogram);

böngésző = getBrowserAndVersion ();

String scenarioName = getScenName ();

String imageName = scenarioName + ”” + böngésző + ””

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

ScrFile fájl = getScreenShotFile (illesztőprogram);

String screenWidthHeight = getImageWidthHeight (scrFile);

// ha a helyi rendszerben meg akarja menteni a képernyőképet, engedélyezze az alábbi sort

// FileUtils.copyFile (scrFile, új fájl („C: // screenshot //” + imageName));

insertImageDB (scrByte, forgatókönyvnév, imageName, screenWidthHeight,

böngésző);

Thread.sleep (1000);

}

nyilvános statikus String getImageWidthHeight (File imageFile) dobja az IOException {

BufferedImage bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

ha (imageWidth! = 0) {

return imageWidth + “x” + imageHeight;

} más {

„FullScreenx” + imageHeight visszatérése;

}

}

nyilvános statikus fájl getScreenShotFile (WebDriver illesztőprogram) {

// WebDriver driverA = új Augmenter ().

return ((TakesSclays) illesztőprogram) .getSc attēAs (OutputType.FILE);

}

nyilvános statikus bájt [] getScreenShotBytes (WebDriver illesztőprogram) {

return ((TakesSclays) illesztőprogram) .getSc attēAs (OutputType.BYTES);

}

nyilvános statikus void insertImageDB (byte [] imageByte, String scenName,

String imageName, String screenWidthHeight, String böngésző)

dobja ClassNotFoundException {

Tulajdonságok dbProp = új Tulajdonságok ();

InputStream dbPropInput = null;

ResultSet rs = null;

PreparedStatement ps = null;

Csatlakozás con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scenName +) —- “+ böngésző +” --- ”

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

próbáld ki {

StrP propPath = ". Src teszt erőforrások támogatása dbConnect.properties";

dbPropInput = új FileInputStream (propPath);

dbProp.load (dbPropInput); // betöltési tulajdonságfájl

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 dátum = új java.util.Date ();

java.sql.Timestamp sqlTimestamp = új java.sql.Timestamp (date.getTime ());

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

ps.setEscapeProcessing (true);

ps.setQueryTimeout (90); // időtúllépés értéke később letiltható, kép

ps.setString (1, „Projekt”);

ps.setString (2, scenName);

ps.setString (3, böngésző);

ps.setString (4, screenWidthHeight);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, imageName);

ps.setBytes (8, imageByte);

// megjegyzés a sor alatt az adatbázisok frissítésének letiltásához

ps.executeUpdate ();

} fogás (IOException e) {

e.printStackTrace ();

} fogás (SQLException e) {

e.printStackTrace ();

} végül {

próbáld ki {

ha (dbPropInput! = null)

dbPropInput.close ();

ha (rs! = null)

rs.close ();

ha (ps! = null)

ps.close ();

ha (con! = null)

con.close ();

} fogás (kivétel e) {

e.printStackTrace ();

}

}

}

nyilvános statikus String getBrowserAndVersion () {

String browser_version = null;

Lehetőségek cap = ((RemoteWebDriver) illesztőprogram) .getCapabilities ();

String browserername = cap.getBrowserName ();

// Ez a blokk az IE verziószámának kiderítéséhez

ha („Internet Explorer” .equalsIgnoreCase (böngészőnév)) {

String uAgent = (String) ((JavascriptExecutor) illesztőprogram)

.executeScript („visszatérő navigator.userAgent;”);

System.out.println (uAgent);

// uAgent visszatér az „MSIE 8.0 Windows” -ra az IE8-ra

ha (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”;

} más {

browser_version = “00”;

}

} más {

// Firefox és Chrome böngésző verziója

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

}

String-böngészőverzió = browser_version.substring (0,

browser_version.indexOf ( „”));

String bVersion = String.format („% 02d”, Integer.parseInt (böngészőverzió));

visszatérés ((böngészőnév) + „_” + bVersion);

}

public static String browserNameConvert (Stringböngésző_neve) {

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

böngészőnév, „felfedező”)) {

vissza az „IE”;

} más, ha (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

böngészőnév, „firefox”)) {

vissza az „FF”;

} más, ha (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

böngészőnév, „króm”)) {

„CH” visszatérés;

} más, ha (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

böngészőnév, „szafari”)) {

vissza az „SF”;

} más {

visszaküldi az „NA” -t;

}

}

}

MSSQL adatbázis-kapcsolat tulajdonságfájl felhasználói hitelesítő adatokkal és Store eljárással

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

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = jdbc: sqlserver: // YOURSERVERURL; database = DatabaseName; user = felhasználónév password = jelszó

SPSql = {hívás STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)}

Az adatbázisban való mentéshez a példában már létrehozott tárolási eljárás és az adatbázis-kapcsolathoz és tároláshoz szükséges összes adat szerepel az ingatlanfájlban.

A böngésző neve 2 karakteres rövid formára alakul át, mint például az FF (Firefox), CH (Chrome) stb. Ez a szkript támogatja az Internet Explorer 8, 9, 10, 11 verzióját.

Előző Cikk

11 A használt iPhone hardver ellenőrzőlista a vásárlás előtt megtörténhet

11 A használt iPhone hardver ellenőrzőlista a vásárlás előtt megtörténhet

A használt iPhone vásárlási útmutató második részében néhány további iPhone hardver tesztet és teljesítménymérést is kibővítünk. Ez az ellenőrzőlista tartalmazza az iPhone képernyőhullámú pixelellenőrzést, az iPhone vízkárosodását, az iPhone érzékelőt és a képernyő funkcióit. Ezek a tesztek többsége manuálisan is...

Következő Cikk

8 A legjobb podcast-alkalmazások Android számára

8 A legjobb podcast-alkalmazások Android számára

Facebook Twitter pinterest WhatsApp Távirat A dolgok most visszatérnek a fázisba, mivel az emberek mostantól a podcastok világába folyik. Több ezer csodálatos podcast áll rendelkezésre az igények szerint, és egy kis alkalmazásnak a kedvenc podcastjainak kezelése segít. Jó, anélkül, hogy egy alkalmazás megszervezné, a podcastjaink elpusztulnak. Itt összeállítottu...