Jak vzít Screenshot a uložit do MSSQL databáze pomocí Java a Selenium Webriver



To je vzít Screenshot pomocí Selenium Webdriver a uložit v MS SQL Database. Obraz se ukládá do databáze s připojeným názvem obrázku s názvem prohlížeče, verzí prohlížeče, pořadovým číslem a názvem scénáře. Tento kód je podporován Chrome, Firefox, Internet Explorer a Safari.

Existuje ještě jedna možnost mezi řádkem 63-70 pro uložení obrázku do místní složky, pokud chcete. Můžete nastavit složku v lokálním systému a uloží obrázek do složky, kterou jste zadali ve formátu png a byte ve formátu MSSql Database.

Take Screenshot a uložit do databáze MSSQL pomocí Java a Selenium Webriver

balíček 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;

veřejná třída ImageSave {

private static int imageSeqNo = 0;

private static String scenName;

soukromý statický prohlížeč WebDriverDriver;

private static int browserWidth;

private static int browserHeight;

public static String prohlížeč;

veřejný statický ovladač WebDriveru;

public static int getBrowserWidth () {

vrátit browserWidth;

}

public static int getBrowserHeight () {

vrátit browserHeight;

}

public static String getScenName () {

return scenName;

}

public static int getImageSeqNo () {

vrátit imageSeqNo;

}

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

// BrowserDriver.getCurrentDriver ();

}

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

ClassNotFoundException, InterruptedException {

byte [] scrByte = getScreenShotBytes (ovladač);

browser = getBrowserAndVersion ();

String sceneName = getScenName ();

Řetězec imageName = scénář + ”” + prohlížeč + ””

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

Soubor scrFile = getScreenShotFile (ovladač);

String screenWidthHeight = getImageWidthHeight (scrFile);

// pokud chcete uložit snímek obrazovky v lokálním systému, povolte řádek níže

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

insertImageDB (scrByte, název_souboru, imageName, screenWidthHeight,

prohlížeč);

Thread.sleep (1000);

}

public static String getImageWidthHeight (Soubor imageFile) vyvolá IOException {

BufferedImage bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

if (imageWidth! = 0) {

vrátit imageWidth + “x” + imageHeight;

} else {

vrátit „FullScreenx“ + imageHeight;

}

}

public static Soubor getScreenShotFile (ovladač WebDriveru) {

// Ovladač WebDriverA = nový program Augmenter ().

return (ovladač (TakesScreenshot)) .getScreenshotAs (OutputType.FILE);

}

public static byte [] getScreenShotBytes (ovladač WebDriveru) {

return (ovladač (TakesScreenshot)) .getScreenshotAs (OutputType.BYTES);

}

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

String imageName, String screenWidthHeight, prohlížeč String)

hodí ClassNotFoundException {

Vlastnosti dbProp = new Vlastnosti ();

InputStream dbPropInput = null;

ResultSet rs = null;

PreparedStatement ps = null;

Připojení con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scenName + ”-” + prohlížeč + ”-”

+ screenWidthHeight + “—- Číslo snímku:” + seqNo);

Snaž se {

Řetězec propPath = “src příkazy upps dbnect.properties”;

dbPropInput = new FileInputStream (propPath);

dbProp.load (dbPropInput); // načíst soubor vlastností

Řetězec dbDriver = (dbProp.getProperty (“dbDriver”));

Řetězec 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 časového limitu může být zakázána později, obrázek

ps.setString (1, „Projekt“);

ps.setString (2, scenName);

ps.setString (3, prohlížeč);

ps.setString (4, screenWidthHeight);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, imageName);

ps.setBytes (8, imageByte);

/ / komentovat níže řádek zakázat aktualizaci databáze

ps.executeUpdate ();

} catch (IOException e) {

e.printStackTrace ();

} catch (SQLException e) {

e.printStackTrace ();

} Konečně {

Snaž se {

if (dbPropInput! = null)

dbPropInput.close ();

if (rs! = null)

rs.close ();

pokud (ps! = null)

ps.close ();

if (con! = null)

con.close ();

} catch (Výjimka e) {

e.printStackTrace ();

}

}

}

public static String getBrowserAndVersion () {

Řetězec browser_version = null;

Capabilities cap = ((RemoteWebDriver) ovladač) .getCapabilities ();

String browsername = cap.getBrowserName ();

// Tento blok zjistí číslo verze IE

if („internetový prohlížeč“ .equalsIgnoreCase (browsername)) {

Řetězec uAgent = (Řetězec) ((JavascriptExecutor) ovladač)

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

System.out.println (uAgent);

// uAgent se vrátí jako "MSIE 8.0 Windows" pro IE8

if (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 {

// Verze prohlížeče pro 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 Řetězec browserNameConvert (String browser_name) {

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

browser_name, “průzkumník”) {

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 Vlastnost soubor s uživatelskými pověřeními a Store Procedure

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

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = jdbc: sqlserver: // YOURSERVERURL; database = DATABASENAME; user = USERNAME; heslo = PASSWORD

SPSql = {volání STOREPROCEDURE (a, a, a, a, a, a, ?, ?)}

Pro uložení do databáze je v souboru vlastností uvedena již vytvořená procedura úložiště v tomto příkladu a všechna tato data pro proceduru připojení k databázi a úložiště.

Jméno prohlížeče převádí na 2 char krátké formuláře, jako je FF (Firefox), CH (Chrome) atd. To je také schopen najít verzi prohlížeče programově včetně verze Internet Explorer verze. Tento skript podporuje verze aplikace Internet Explorer 8, 9, 10, 11.

Předchozí Článek

Jak získat předpověď počasí (iCAL) na Mac a iPhone kalendář na jeden týden

Jak získat předpověď počasí (iCAL) na Mac a iPhone kalendář na jeden týden

Facebook Cvrlikání Pinterest WhatsApp Telegram Předpověď počasí ve vašem kalendáři vám pomůže naplánovat si obchodní nebo pracovní plán na nadcházející týden. Mac nenabízí žádnou vestavěnou funkci pro zobrazení počasí v kalendáři Mac nebo iOS. Pro uživatele iPhone a iPad existují speciální aplikace, které mohou předpovědět počasí na jeden nebo dva týdny. Neexistuje však žádná speciální funkce p...

Následující Článek

Apple MacBook Pro Vs Microsoft Surface Book

Apple MacBook Pro Vs Microsoft Surface Book

Facebook Cvrlikání Pinterest WhatsApp Telegram Apple a Microsoft jsou představeny nová zařízení v po sobě jdoucích dnech října 2016 v kategorii notebooky. Společnost Apple uvedla na trh nový Macbook Pro s dotykovou lištou, kde společnost Microsoft představila nový Surface Book s volbou Surface a Surface Pen pro zvýšení produktivity zákazníků. Bude zajímavé vidět, ...