Kako uzeti Screenshot i spremiti u MSSQL baze podataka pomoću Java i Selenium Webriver



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.

Prethodni Članak

Visio Viewer 2007 je prestao raditi i Red X u programu Internet Explorer

Visio Viewer 2007 je prestao raditi i Red X u programu Internet Explorer

Ako imate pogrešku na Visio Vieweru kao što je ova, "blok bijelog okvira u programu Internet Explorer dok pokušavate otvoriti bilo koji Visio (VSD) dokument" nakon što odaberete "Dopusti blokirani sadržaj", dokument se ne otvara i "slomljena slika" "U prozoru preglednika prikazuje se ikona", pa pokušajte riješiti sljedeće korake. Soluti...

Sljedeći Članak

7 najboljih Google Now značajki koje čine vaš život lakšim.

7 najboljih Google Now značajki koje čine vaš život lakšim.

U redu, Google ... Google Now raste s nevjerojatnim značajkama u posljednje dvije godine. Najnovija značajka usluge Google Now je praćenje pada cijena. Integrira se s Google letovima i obavještava vas kada cijena pretraživanja padne za pretraživanje. Osobni glasovni asistent Google Now izvrsna je značajka i briljantan za prepoznavanje vaših naredbi. Vidjel...