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

Kako sinkronizirati Android uređaj i Linux računalo s KDE Connectom

Kako sinkronizirati Android uređaj i Linux računalo s KDE Connectom

Facebook Cvrkut Pinterest Što ima Telegram Appleov ekosustav omogućuje da se iOS i Mac uređaji neprimjetno integriraju jedan s drugim. Možete, primjerice, nekome poslati tekst s uređaja iPhone pomoću računala Mac ili iPad. Skočite sa zidova oko “Appleovog ograđenog vrta” i otkrit ćete da su se stvari malo raspale. Imate Androi...

Sljedeći Članak

Kako ručno instalirati Flash Player na Android za besplatno

Kako ručno instalirati Flash Player na Android za besplatno

Oni koji žele flash player na Android uređaju imaju dva izbora. Prva opcija se oslanja na preglednik koji podržava Flash Player na uređaju Android. Drugi izbor je ručno instalirati Flash Player na Android uređaj. Google i Apple uklonili su Adobe Flash Player sa svojih uređaja. Ipak, postoji mnogo web stranica izgrađenih s flash baziranim videozapisima i zaraznim igrama. Androi...