Ako sa Screenshot a uložiť do databázy MSSQL pomocou Java a Selenium Webriver



To je vziať Screenshot pomocou Selenium Webdriver a uložiť v databáze MS SQL. Obraz je uložený v databáze s názvom obrázku pripojeným s menom prehliadača, verziou prehliadača, poradovým číslom a názvom scenára. Tento kód je podporovaný prehliadačom Chrome, Firefox, Internet Explorer a Safari.

Existuje ešte jedna možnosť medzi riadkom 63-70, ak chcete obrázok uložiť do lokálneho priečinka. Môžete nastaviť priečinok v lokálnom systéme a uloží obrázok do priečinka, ktorý ste zadali vo formáte png a byte vo formáte MSSql Database.

Take Screenshot a uložiť do databázy MSSQL pomocou Java a Selenium Webriver

balík 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;

verejná trieda ImageSave {

private static int imageSeqNo = 0;

private static String scenName;

súkromný statický prehliadač WebDriverDriver;

private static int browserWidth;

private static int browserHeight;

public static String prehliadač;

verejný statický ovládač WebDriveru;

public static int getBrowserWidth () {

vráti prehliadačwidth;

}

public static int getBrowserHeight () {

vráti prehliadačHeight;

}

public static String getScenName () {

return scenName;

}

public static int getImageSeqNo () {

návrat imageSeqNo;

}

public static void main (String [] args) vyvolá výnimku {

// BrowserDriver.getCurrentDriver ();

}

public static void addScreenshot (ovládač WebDriveru) vyvolá IOException,

ClassNotFoundException, InterruptedException {

byte [] scrByte = getScreenShotBytes (ovládač);

browser = getBrowserAndVersion ();

String scenár = getScenName ();

String imageName = scenár + + ”+ prehliadač +” ”

+ System.currentTimeMillis () + “.png”;

Súbor scrFile = getScreenShotFile (ovládač);

String screenWidthHeight = getImageWidthHeight (scrFile);

// ak chcete uložiť snímku obrazovky v lokálnom systéme, aktivujte riadok nižšie

// FileUtils.copyFile (scrFile, nový súbor (“C: // screenshot //” + imageName));

insertImageDB (scrByte, scriptName, imageName, screenWidthHeight,

browser);

Thread.sleep (1000);

}

public static String getImageWidthHeight (Súbor imageFile) vyvolá IOException {

BufferedImage bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

if (imageWidth! = 0) {

return imageWidth + “x” + imageHeight;

} else {

vráti “FullScreenx” + imageHeight;

}

}

public static Súbor getScreenShotFile (ovládač WebDriver) {

// WebDriver driverA = nový Augmenter ().

return (ovládač (TakesScreenshot)) .getScreenshotAs (OutputType.FILE);

}

public statický byte [] getScreenShotBytes (ovládač WebDriver) {

return (ovládač (TakesScreenshot)) .getScreenshotAs (OutputType.BYTES);

}

public static void insertImageDB (byte [] imageByte, String scenName,

String imageName, String screenWidthHeight, prehliadač String)

hodí ClassNotFoundException {

Vlastnosti dbProp = new Vlastnosti ();

InputStream dbPropInput = null;

ResultSet rs = null;

PreparedStatement ps = null;

Pripojenie con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scenName + ”-” + prehliadač + ”-”

+ screenWidthHeight + “—- Číslo záberu:” + seqNo);

skúste {

Reťazec propPath = “src test zdroje props dbnect.properties”;

dbPropInput = new FileInputStream (propPath);

dbProp.load (dbPropInput); // načíta súbor vlastností

String dbDriver = (dbProp.getProperty (“dbDriver”));

String dbURL = (dbProp.getProperty (“dbURL”));

String = (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 = new java.sql.Timestamp (date.getTime ());

System.out.println (“Image Timestamp =” + sqlTimestamp);

ps.setEscapeProcessing (true);

ps.setQueryTimeout (90); // hodnota timeoutu môže byť neskôr vypnutá, obrázok

ps.setString (1, “Projekt”);

ps.setString (2, scenName);

ps.setString (3, prehliadač);

ps.setString (4, screenWidthHeight);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, imageName);

ps.setBytes (8, imageByte);

/ / komentovať nižšie riadok vypnúť aktualizácie databázy

ps.executeUpdate ();

} catch (IOException e) {

e.printStackTrace ();

} catch (SQLException e) {

e.printStackTrace ();

} nakoniec {

skúste {

if (dbPropInput! = null)

dbPropInput.close ();

if (rs! = null)

rs.Close ();

ak (ps! = null)

ps.close ();

if (con! = null)

con.close ();

} catch (Výnimka e) {

e.printStackTrace ();

}

}

}

public static String getBrowserAndVersion () {

String browser_version = null;

Capabilities cap = ((RemoteWebDriver) ovládač) .getCapabilities ();

String browsername = cap.getBrowserName ();

// Tento blok na zistenie čísla verzie IE

if („internetový prehliadač“ .equalsIgnoreCase (browsername)) {

String uAgent = (String) ((JavascriptExecutor) ovládač)

.executeScript (“return navigator.userAgent;”);

System.out.println (uAgent);

// uAgent sa vráti ako "MSIE 8.0 Windows" pre IE8

ak (uAgent.contains (“MSIE”) && uAgent.contains (“Windows”)) {

browser_version = uAgent.substring (uAgent.indexOf (“MSIE”) + 5,

uAgent.indexOf („Windows“) - 2);

} else if (uAgent.contains (“Trident / 7.0”)) {

browser_version = “11.0”;

} else {

browser_version = “00”;

}

} else {

// Verzia prehliadača pre Firefox a Chrome

browser_version = cap.getVersion (); // .split (“.”) [0];

}

String browserversion = browser_version.substring (0,

browser_version.indexOf ( ""));

String bVersion = String.format (“% 02d”, Integer.parseInt (browserversion));

return ((browsername) + “_” + bVersion);

}

public static String browserNameConvert (String browser_name) {

if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, “explorer”)) {

návrat „IE“;

} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, “firefox”) {

návrat “FF”;

} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, “chrome”) {

návrat “CH”;

} else if (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, “safari”) {

návrat „SF“;

} else {

návrat “NA”;

}

}

}

MSSQL Database Connection Vlastnosť súbor s užívateľskými povereniami a Store Procedure

################## dbConnect.properties ##################

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = jdbc: SQLServer: // YOURSERVERURL; database = Názov databázy, user = USERNAME, password = HESLO

SPSql = {volanie STOREPROCEDURE (a, a, a, a, a, a, a, a)}

Ak chcete uložiť do databázy, procedúra ukladania už vytvorená v tomto príklade a všetky tieto údaje pre procedúru pripojenia k databáze a ukladacieho priestoru sú uvedené v súbore vlastností.

Meno prehliadača konvertuje na 2 krátke krátke formuláre, ako je FF (Firefox), CH (Chrome) atď Toto je tiež schopný nájsť verziu prehliadača programovo vrátane verzie verzie programu Internet Explorer. Tento skript podporuje verzie programu Internet Explorer 8, 9, 10, 11.

Predchádzajúci Článok

Herný notebook Nákup Guide - 10 hardvérových komponentov pre kontrolu

Herný notebook Nákup Guide - 10 hardvérových komponentov pre kontrolu

Pred chvíľou, notebooky neboli ničím iným ako kompaktnými, ľahko prenosnými výpočtovými zariadeniami, ktoré zvládli len základy. Hra bola ponechaná na PC, ktorý okrem iného mal dostatok miesta na umiestnenie grafických kariet, prepracovaných chladiacich systémov a tak ďalej. Vďaka technológii sa však priepasť medzi stolným a prenosným počítačom rýchlo uzatvára. Na súčasnom trhu sú notebooky ...

Nasledujúci Článok

Ako zdieľať WiFi a Hotspot na iPhone s jedným dotykom?

Ako zdieľať WiFi a Hotspot na iPhone s jedným dotykom?

Facebook cvrlikání pinterest WhatsApp telegram Apple zaviedol jednoduchý, ale vynikajúci rys na iOS11, iPhone WiFi zdieľanie bez zadania hesla. Funkcia umožňuje majiteľovi iPhone zdieľať WiFi sieť alebo pripojenie Hotspot bez odhalenia skutočného hesla. Krása tejto možnosti je, že môžete nechať svojich priateľov používať WiFi, aj keď si nepamätáte heslo WiFi. Okrem tohto zdieľania Wi...