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

10 najboljih 4K akcijskih kamera za zamjenu GoPro4.

10 najboljih 4K akcijskih kamera za zamjenu GoPro4.

Sportske kamere su novi valovi na tržištu akcijskih kamera. Na tržištu su dostupne najbolje akcijske kamere ispod 100 dolara. Međutim, možete se odlučiti za profesionalne 4K akcijske kamere poput GoPro Hero5, koje padaju u rasponu cijena od $ 300 - $ 400. Bez obzira na cijenu, čak i ove jeftine akcijske kamere mogu ponuditi izvrsnu kvalitetu videa i zapanjujuće slike. Kao što...

Sljedeći Članak

Najbolji trik za pronalaženje pružatelja lokalnih podataka u vašem području.

Najbolji trik za pronalaženje pružatelja lokalnih podataka u vašem području.

Facebook Cvrkut Pinterest Što ima Telegram Zadržite svoj plan kupnje podatkovne kartice za pametni telefon. Jeste li sigurni da ćete dobiti novu snagu signala i brzinu s novom podatkovnom karticom? Pogotovo dok gledate YouTube ili pregledavate internet iz svoje spavaće sobe. Kupnja podatkovne kartice za vašu uporabu neće biti težak zadatak jer je na tržištu dostupno mnogo modela. No, nem...