Tai turi būti „Screenshot“ naudojant „Selenium Webdriver“ ir išsaugoti MS SQL duomenų bazėje. Vaizdas išsaugomas duomenų bazėje su vaizdo pavadinimu, kuriame yra naršyklės pavadinimas, naršyklės versija, eilės numeris ir scenarijaus pavadinimas. Šis kodas yra palaikomas „Chrome“, „Firefox“, „Internet Explorer“ ir „Safari“.
Norint išsaugoti paveikslėlį į vietinį aplanką, tarp 63-70 eilutės yra dar viena parinktis. Vietos sistemoje galite nustatyti aplanką ir išsaugoti paveikslėlį į aplanką, kurį nurodėte png formatu ir baitų formatu MSSql duomenų bazėje.
Paimkite Screenshot ir išsaugokite MSSQL duomenų bazę, naudodami „Java“ ir „Selenium Webriver“
paketas com.main;
importuoti java.awt.image.BufferedImage;
importuoti java.io.File;
importuoti java.io.FileInputStream;
importuoti java.io.IOException;
importuoti java.io.InputStream;
importuoti java.sql.Connection;
importuoti java.sql.DriverManager;
importuoti java.sql.PreparatedStatement;
importuoti java.sql.ResultSet;
importuoti java.sql.SQLException;
importuoti java.util.Properties;
importuoti java.util.concurrent.TimeUnit;
importuoti javax.imageio.ImageIO;
importuoti org.openqa.selenium.Pajėgumai;
import org.openqa.selenium.JavascriptExecutor;
importuoti org.openqa.selenium.OutputType;
importuoti org.openqa.selenium.TakesSclays;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
visuomenės klasė „ImageSave“ {
privatus statinis int imageSeqNo = 0;
privatus statinis Stygos scenarijus;
privati statinė „WebDriver“ naršyklėDriver;
asmeninis statinis naršyklės plotis;
privatus statinis naršyklės aukštis;
vieša statinė eilutės naršyklė;
viešas statinis „WebDriver“ tvarkyklė;
viešas statinis intBrowserWidth () {
grįžti naršyklės plotis;
}
viešas statinis „getBrowserHeight“ () {
grįžti naršyklęSvečio;
}
vieša statinė eilutė getScenName () {
grąžinimo scenarijus;
}
viešas statinis int getImageSeqNo () {
grąžinti imageSeqNo;
}
public static void main (String [] args) išmeta išimtį {
// BrowserDriver.getCurrentDriver ();
}
public static void addSclays (WebDriver tvarkyklė) išmeta IOException,
ClassNotFoundException, InterruptedException {
baitas [] scrByte = getScreenShotBytes (tvarkyklė);
naršyklė = getBrowserAndVersion ();
String scenarioName = getScenName ();
String imageName = scenarijusName + ”“ + naršyklė + ”“
+ System.currentTimeMillis () + „.png“;
Failas scrFile = getScreenShotFile (tvarkyklė);
String screenWidthHeight = getImageWidthHeight (scrFile);
// jei norite išsaugoti ekrano nuotrauką vietos sistemoje, įjunkite žemiau esančią eilutę
// FileUtils.copyFile (scrFile, naujas failas („C: // ekrano kopija //” + imageName));
insertImageDB (scrByte, scenarijusName, imageName, screenWidthHeight,
naršyklė);
Thread.sleep (1000);
}
public static String getImageWidthHeight (File imageFile) išmeta IOException {
BufferedImage bimg = ImageIO.read (imageFile);
int imageWidth = bimg.getWidth ();
int imageHeight = bimg.getHeight ();
jei (imageWidth! = 0) {
grįžti imageWidth + “x” + imageHeight;
} Kitas {
grąžinti „FullScreenx“ + imageHeight;
}
}
viešas statinis failas getScreenShotFile („WebDriver“ tvarkyklė) {
// WebDriver driverA = naujas Augmenter ().
grįžti ((TakesSclays) tvarkyklė) .getSc pētniecībasAs (OutputType.FILE);
}
viešas statinis baitas [] getScreenShotBytes („WebDriver“ tvarkyklė) {
grįžti ((TakesSclays) tvarkyklė) .getSc pētniecībasAs (OutputType.BYTES);
}
public static void insertImageDB (baito [] imageByte, eilutės scenarijus,
String imageName, String screenWidthHeight, String naršyklė)
meta ClassNotFoundException {
Ypatybės dbProp = naujos ypatybės ();
InputStream dbPropInput = null;
ResultSet rs = null;
PreparedStatement ps = null;
Ryšys con = null;
// setImageSeqNo (getImageSeqNo () + 1);
int seqNo = getImageSeqNo ();
„System.out.println“ (scenos pavadinimas +) —- “+ naršyklė +” -
+ screenWidthHeight + “-„ Shot Number “:„ + SeqNo “;
bandyti {
String propPath = “. \ T
dbPropInput = naujas FileInputStream (propPath);
dbProp.load (dbPropInput); // įkelti turinio failą
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 date = naujas java.util.Date ();
java.sql.Timestamp sqlTimestamp = naujas java.sql.Timestamp (date.getTime ());
System.out.println („Image Timestamp =” + „SqlTimestamp“);
ps.setEscapeProcessing (tiesa);
ps.setQueryTimeout (90); // timeout reikšmė gali būti išjungta vėliau, nuotrauka
ps.setString (1, „Projektas“);
ps.setString (2, scenarijus);
ps.setString (3, naršyklė);
ps.setString (4, screenWidthHeight);
ps.setTimestamp (5, sqlTimestamp);
ps.setInt (6, seqNo);
ps.setString (7, imageName);
ps.setBytes (8, imageByte);
// komentuoti žemiau eilutės, kad išjungtumėte duomenų bazės atnaujinimą
ps.executeUpdate ();
} sugauti (IOException e) {
e.printStackTrace ();
} sugauti (SQLException e) {
e.printStackTrace ();
} pagaliau {
bandyti {
jei (dbPropInput! = null)
dbPropInput.close ();
jei (rs! = null)
rs.close ();
jei (ps! = null)
ps.close ();
jei (con! = null)
con.close ();
} gaudyti (išimtis e) {
e.printStackTrace ();
}
}
}
viešas statinis String getBrowserAndVersion () {
String browser_version = null;
Galimybių dangtelis = ((RemoteWebDriver) tvarkyklė) .getCapabilities ();
String browserername = cap.getBrowserName ();
// Šis blokas, skirtas sužinoti IE versijos numerį
jei („Internet Explorer“ .equalsIgnoreCase (naršyklės vardas)) {
String uAgent = (String) ((JavascriptExecutor) tvarkyklė)
.executeScript („grįžti navigator.userAgent;“);
System.out.println (uAgent);
// uAgent grįžti kaip "MSIE 8.0 Windows" už IE8
jei (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”;
} Kitas {
browser_version = “00”;
}
} Kitas {
// „Firefox“ ir „Chrome“ naršyklės versija
browser_version = cap.getVersion (); // .split („.“) [0];
}
Stringas naršyklės naršymas = naršyklės_versija.
browser_version.indexOf („.“));
String bVersion = String.format („% 02d“, „Integer.parseInt“ (naršyklės keitimas));
grįžti ((naršyklės vardas) + “_” + bVersion);
}
viešas statinis String browserNameConvert (String browser_name) {
jei (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
naršyklės pavadinimas, „Explorer“)) {
grąžinti „IE“;
} other if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
naršyklės pavadinimas, „firefox“)) {
grąžinti „FF“;
} other if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
naršyklės pavadinimas, „chromo“)) {
grąžinti „CH“;
} other if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
naršyklės pavadinimas, „safari“)) {
grąžinti „SF“;
} Kitas {
grąžinti „NA“;
}
}
}
MSSQL duomenų bazės ryšio nuosavybės failas su vartotojo kredencialais ir parduotuvės procedūra
################## dbConnect.properties ##################
dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver
dbURL = jdbc: sqlserver: // YOURSERVERURL; duomenų bazė = DATABASENAME; vartotojas = USERNAME; slaptažodis = PASSWORD
SPSql = {skambinti STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)}
Norėdami išsaugoti duomenų bazėje, šiame pavyzdyje jau sukurta parduotuvės procedūra ir visi šie duomenų bazės prijungimo ir saugojimo duomenys yra išvardyti nuosavybės faile.
Naršyklės pavadinimas, paverčiantis 2 paprastomis trumpomis formomis, tokiomis kaip FF (Firefox), CH („Chrome“) ir tt Tai taip pat gali rasti naršyklės versiją programiškai, įskaitant „Internet Explorer“ versijos numerį. Šis scenarijus palaiko „Internet Explorer“ versijas 8, 9, 10, 11.