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

15 najboljih Nintendo 3DS igara cijelo vrijeme

15 najboljih Nintendo 3DS igara cijelo vrijeme

Facebook Cvrkut Pinterest Što ima Telegram Nintendo 3DS je jedan od najuspješnijih video igraćih konzola koji su prenosivi i sadrži ogroman raspon naslova igara. Prikazivanje najboljih stereoskopskih 3D efekata, trenutna verzija Nintendo 3DS nasljeđuje poboljšane kontrole i grafike koje vam daju neke najbolje 3DS igre za igranje. Post...

Sljedeći Članak

Kako onemogućiti Javu na Windows računalima.

Kako onemogućiti Javu na Windows računalima.

Čuli smo za nedavne hakerske napade na Twitter, Facebook i Macove zaposlenike, postoji mnogo pitanja o sigurnosti Jave. Možete onemogućiti Java na svom Windows laptopu da biste zaštitili svoje računalo od napada. Ovaj post objašnjava kako onemogućiti Javu na Windows operativnom sustavu. Možete ponovno omogućiti program ako želite u budućnosti za java-based web stranice programa. Java plug...