
To je vziať Screenshot pomocou Selenium Webdriver a uložiť v databáze MS SQL. Obraz je uložený v databáze s názvom obrázku pripojeným s menom prehliadača, verziou prehliadača, poradovým číslom a názvom scenára. Tento kód je podporovaný prehliadačom Chrome, Firefox, Internet Explorer a Safari.
Existuje ešte jedna možnosť medzi riadkom 63-70, ak chcete obrázok uložiť do lokálneho priečinka. Môžete nastaviť priečinok v lokálnom systéme a uloží obrázok do priečinka, ktorý ste zadali vo formáte png a byte vo formáte MSSql Database.
Take Screenshot a uložiť do databázy MSSQL pomocou Java a Selenium Webriver
balík 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.Connection;
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.Capabilities;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
verejná trieda ImageSave {
private static int imageSeqNo = 0;
private static String scenName;
súkromný statický prehliadač WebDriverDriver;
private static int browserWidth;
private static int browserHeight;
public static String prehliadač;
verejný statický ovládač WebDriveru;
public static int getBrowserWidth () {
vráti prehliadačwidth;
}
public static int getBrowserHeight () {
vráti prehliadačHeight;
}
public static String getScenName () {
return scenName;
}
public static int getImageSeqNo () {
návrat imageSeqNo;
}
public static void main (String [] args) vyvolá výnimku {
// BrowserDriver.getCurrentDriver ();
}
public static void addScreenshot (ovládač WebDriveru) vyvolá IOException,
ClassNotFoundException, InterruptedException {
byte [] scrByte = getScreenShotBytes (ovládač);
browser = getBrowserAndVersion ();
String scenár = getScenName ();
String imageName = scenár + + ”+ prehliadač +” ”
+ System.currentTimeMillis () + “.png”;
Súbor scrFile = getScreenShotFile (ovládač);
String screenWidthHeight = getImageWidthHeight (scrFile);
// ak chcete uložiť snímku obrazovky v lokálnom systéme, aktivujte riadok nižšie
// FileUtils.copyFile (scrFile, nový súbor (“C: // screenshot //” + imageName));
insertImageDB (scrByte, scriptName, imageName, screenWidthHeight,
browser);
Thread.sleep (1000);
}
public static String getImageWidthHeight (Súbor imageFile) vyvolá IOException {
BufferedImage bimg = ImageIO.read (imageFile);
int imageWidth = bimg.getWidth ();
int imageHeight = bimg.getHeight ();
if (imageWidth! = 0) {
return imageWidth + “x” + imageHeight;
} else {
vráti “FullScreenx” + imageHeight;
}
}
public static Súbor getScreenShotFile (ovládač WebDriver) {
// WebDriver driverA = nový Augmenter ().
return (ovládač (TakesScreenshot)) .getScreenshotAs (OutputType.FILE);
}
public statický byte [] getScreenShotBytes (ovládač WebDriver) {
return (ovládač (TakesScreenshot)) .getScreenshotAs (OutputType.BYTES);
}
public static void insertImageDB (byte [] imageByte, String scenName,
String imageName, String screenWidthHeight, prehliadač String)
hodí ClassNotFoundException {
Vlastnosti dbProp = new Vlastnosti ();
InputStream dbPropInput = null;
ResultSet rs = null;
PreparedStatement ps = null;
Pripojenie con = null;
// setImageSeqNo (getImageSeqNo () + 1);
int seqNo = getImageSeqNo ();
System.out.println (scenName + ”-” + prehliadač + ”-”
+ screenWidthHeight + “—- Číslo záberu:” + seqNo);
skúste {
Reťazec propPath = “src test zdroje props dbnect.properties”;
dbPropInput = new FileInputStream (propPath);
dbProp.load (dbPropInput); // načíta súbor vlastností
String dbDriver = (dbProp.getProperty (“dbDriver”));
String dbURL = (dbProp.getProperty (“dbURL”));
String = (dbProp.getProperty (“SPSql”));
Class.forName (dbDriver);
con = DriverManager.getConnection (dbURL);
ps = con.prepareStatement (stPro);
java.util.Date date = new java.util.Date ();
java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp (date.getTime ());
System.out.println (“Image Timestamp =” + sqlTimestamp);
ps.setEscapeProcessing (true);
ps.setQueryTimeout (90); // hodnota timeoutu môže byť neskôr vypnutá, obrázok
ps.setString (1, “Projekt”);
ps.setString (2, scenName);
ps.setString (3, prehliadač);
ps.setString (4, screenWidthHeight);
ps.setTimestamp (5, sqlTimestamp);
ps.setInt (6, seqNo);
ps.setString (7, imageName);
ps.setBytes (8, imageByte);
/ / komentovať nižšie riadok vypnúť aktualizácie databázy
ps.executeUpdate ();
} catch (IOException e) {
e.printStackTrace ();
} catch (SQLException e) {
e.printStackTrace ();
} nakoniec {
skúste {
if (dbPropInput! = null)
dbPropInput.close ();
if (rs! = null)
rs.Close ();
ak (ps! = null)
ps.close ();
if (con! = null)
con.close ();
} catch (Výnimka e) {
e.printStackTrace ();
}
}
}
public static String getBrowserAndVersion () {
String browser_version = null;
Capabilities cap = ((RemoteWebDriver) ovládač) .getCapabilities ();
String browsername = cap.getBrowserName ();
// Tento blok na zistenie čísla verzie IE
if („internetový prehliadač“ .equalsIgnoreCase (browsername)) {
String uAgent = (String) ((JavascriptExecutor) ovládač)
.executeScript (“return navigator.userAgent;”);
System.out.println (uAgent);
// uAgent sa vráti ako "MSIE 8.0 Windows" pre IE8
ak (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”;
} else {
browser_version = “00”;
}
} else {
// Verzia prehliadača pre Firefox a Chrome
browser_version = cap.getVersion (); // .split (“.”) [0];
}
String browserversion = browser_version.substring (0,
browser_version.indexOf ( ""));
String bVersion = String.format (“% 02d”, Integer.parseInt (browserversion));
return ((browsername) + “_” + bVersion);
}
public static String browserNameConvert (String browser_name) {
if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, “explorer”)) {
návrat „IE“;
} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, “firefox”) {
návrat “FF”;
} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, “chrome”) {
návrat “CH”;
} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, “safari”) {
návrat „SF“;
} else {
návrat “NA”;
}
}
}
MSSQL Database Connection Vlastnosť súbor s užívateľskými povereniami a Store Procedure
################## dbConnect.properties ##################
dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver
dbURL = jdbc: SQLServer: // YOURSERVERURL; database = Názov databázy, user = USERNAME, password = HESLO
SPSql = {volanie STOREPROCEDURE (a, a, a, a, a, a, a, a)}
Ak chcete uložiť do databázy, procedúra ukladania už vytvorená v tomto príklade a všetky tieto údaje pre procedúru pripojenia k databáze a ukladacieho priestoru sú uvedené v súbore vlastností.
Meno prehliadača konvertuje na 2 krátke krátke formuláre, ako je FF (Firefox), CH (Chrome) atď Toto je tiež schopný nájsť verziu prehliadača programovo vrátane verzie verzie programu Internet Explorer. Tento skript podporuje verzie programu Internet Explorer 8, 9, 10, 11.