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.