
Ovo je uzeti Screenshot koristeći Selenium Webdriver i spremiti u MS SQL Database. Slika se sprema u bazu podataka s nazivom slike s nazivom preglednika, verzijom preglednika, rednim brojem i imenom scenarija. Ovaj kôd podržava Chrome, Firefox, Internet Explorer i Safari.
Postoji još jedna mogućnost između linije 63-70 za spremanje slike u lokalnu mapu, ako želite. Možete postaviti mapu u lokalnom sustavu i spremiti sliku u mapu koju ste naveli u png formatu i formatu bajta u MSSql bazi podataka.
Uzmi Screenshot i spremiti u MSSQL baze podataka pomoću Java i Selenium Webriver
paket 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;
javna klasa ImageSave {
privatni statički int imageSeqNo = 0;
privatni statički String scenName;
privatni statički WebDriver browserDriver;
privatni statični int browserWidth;
privatni statični int browserHeight;
javni statički String preglednik;
javni statički upravljački program za WebDriver;
javni statični int getBrowserWidth () {
vrati browserWidth;
}
javni statični int getBrowserHeight () {
povratak preglednika visina;
}
public static String getScenName () {
return scenName;
}
javni statični int getImageSeqNo () {
return imageSeqNo;
}
public static void main (String [] args) izbacuje iznimku {
// BrowserDriver.getCurrentDriver ();
}
public static void addScreenshot (upravljački program WebDriver) baca IOException,
ClassNotFoundException, InterruptedException {
bajt [] scrByte = getScreenShotBytes (upravljački program);
browser = getBrowserAndVersion ();
String scenarioName = getScenName ();
String imageName = scenarioName + ”” + preglednik + ””
+ System.currentTimeMillis () + “.png”;
Datoteka scrFile = getScreenShotFile (upravljački program);
Niz screenWidthHeight = getImageWidthHeight (scrFile);
// ako želite spremiti sliku zaslona u lokalnom sustavu, omogućite liniju ispod
// FileUtils.copyFile (scrFile, nova datoteka (“C: // screenshot //” + imageName));
insertImageDB (scrByte, scenarioName, imageName, screenWidthHeight,
preglednik);
Thread.sleep (1000);
}
public static String getImageWidthHeight (FileFile) baca IOException {
BufferedImage bimg = ImageIO.read (imageFile);
int imageWidth = bimg.getWidth ();
int imageHeight = bimg.getHeight ();
ako (imageWidth! = 0) {
povratna slikaWidth + “x” + imageHeight;
} else {
vraćanje "FullScreenx" + imageHeight;
}
}
javna statična datoteka getScreenShotFile (upravljački program za WebDriver) {
// WebDriver driverA = novi Augmenter (). Augment (driver);
return ((TakesScreenshot) upravljački program) .getScreenshotAs (OutputType.FILE);
}
javni statički bajt [] getScreenShotBytes (upravljački program za WebDriver) {
return ((TakesScreenshot) upravljački program) .getScreenshotAs (OutputType.BYTES);
}
public static void insertImageDB (bajt [] imageByte, niz scenName,
String imageName, String screenWidthHeight, String preglednik)
baca ClassNotFoundException {
Svojstva dbProp = new Properties ();
InputStream dbPropInput = null;
ResultSet rs = null;
PreparedStatement ps = null;
Veza con = null;
// setImageSeqNo (getImageSeqNo () + 1);
int seqNo = getImageSeqNo ();
System.out.println (scenName + ”—-“ + preglednik + ”—-“
+ screenWidthHeight + ”—– Broj snimke:“ + seqNo);
pokušaj {
Stup propPath = “. \ T
dbPropInput = novi FileInputStream (propPath);
dbProp.load (dbPropInput); // učitaj datoteku svojstava
String dbDriver = (dbProp.getProperty (“dbDriver”));
Niz dbURL = (dbProp.getProperty (“dbURL”));
String stPro = (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 = novo java.sql.Timestamp (date.getTime ());
System.out.println ("Image Timestamp =" + sqlTimestamp);
ps.setEscapeProcessing (pravi);
ps.setQueryTimeout (90); // vrijednost isteka može kasnije biti onemogućena, slika
ps.setString (1, "Projekt");
ps.setString (2, scenName);
ps.setString (3, preglednik);
ps.setString (4, screenWidthHeight);
ps.setTimestamp (5, sqlTimestamp);
ps.setInt (6, seqNo);
ps.setString (7, imageName);
ps.setBytes (8, imageByte);
// komentar ispod retka da biste onemogućili ažuriranje baze podataka
ps.executeUpdate ();
} catch (IOException e) {
e.printStackTrace ();
} catch (SQLException e) {
e.printStackTrace ();
} konačno {
pokušaj {
ako (dbPropInput! = null)
dbPropInput.close ();
ako (rs! = null)
rs.close ();
ako (ps! = null)
ps.close ();
ako (con! = null)
con.close ();
} catch (Iznimka e) {
e.printStackTrace ();
}
}
}
javni statični String getBrowserAndVersion () {
String browser_version = null;
Capabilities cap = ((RemoteWebDriver) upravljački program) .getCapabilities ();
Preglednik niza nizova = cap.getBrowserName ();
// Ovaj blok za pronalaženje IE broja verzije
if ("internet explorer" .equalsIgnoreCase (korisničko ime preglednika)) {
String uAgent = (String) ((JavascriptExecutor) upravljački program)
.executeScript (“return navigator.userAgent;”);
Sustava (uAgent);
// uAgent vrati kao "MSIE 8.0 Windows" za IE8
ako (uAgent.contains (“MSIE”) && uAgent.contains (“Windows”)) {
browser_version = uAgent.substring (uAgent.indexOf (“MSIE”) + 5,
uAgent.indexOf ("Windows") - 2);
} drugo ako (uAgent.contains (“Trident / 7.0”)) {
browser_version = “11.0”;
} else {
browser_version = “00”;
}
} else {
// Verzija preglednika za Firefox i Chrome
browser_version = cap.getVersion (); // .split (“.”) [0];
}
String browserversion = browser_version.substring (0,
browser_version.indexOf ( „”));
String bVersion = String.format ("% 02d", Integer.parseInt (browserversion));
povratak ((ime korisnika) + "_" + bVersion);
}
public static String browserNameConvert (String browser_name) {
if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, “explorer”)) {
povratak "IE";
} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, “firefox”)) {
povratak "FF";
} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, “chrome”)) {
povratak "CH";
} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (
browser_name, "safari")) {
povratak "SF";
} else {
povratak "NA";
}
}
}
Datoteka svojstva veze MSSQL baze podataka s korisničkim vjerodajnicama i postupkom pohrane
################## dbConnect.properties ##################
dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver
dbURL = JDBC: SQLServer: // YOURSERVERURL, baza podataka = DATABASENAME, user = USERNAME, lozinkom = LOZINKA
SPSql = {nazvati STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)?
Za spremanje u bazu podataka, procedura spremanja je već kreirana u ovom primjeru i svi ti podaci za povezivanje baze podataka i postupak pohrane navedeni su u datoteci svojstava.
Ime preglednika pretvara se u 2 kratke forme kao što su FF (Firefox), CH (Chrome) itd. Ovo je također sposobno za programiranje verzije preglednika, uključujući broj inačice Internet Explorera. Ova skripta podržava inačice Internet Explorer 8, 9, 10, 11.