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.