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 rozbalit Samsung Galaxy Tab Storage?

Jak rozbalit Samsung Galaxy Tab Storage?

Samsung Galaxy Tabs jsou dodávány s 16 GB, 32 GB, 64 GB interním úložištěm spolu s rozšiřitelným slotem pro paměťové karty. Tato další možnost ukládání umožňuje uživatelům přidat do zařízení dalších 16 GB, 32 GB, 64 GB, 128 GB. Kromě toho může uživatel rozšířit úložiště Samsung Galaxy Tab pomocí nějakého dalšího příslušenství. Pro tento jednoduchý OTG kabel jsou možnosti ro...

Následující Článek

Srovnání mezi iPhone 5 Vs Samsung Galaxy S3

Srovnání mezi iPhone 5 Vs Samsung Galaxy S3

iPhone 5 je konečně spuštěn z Apple a žádný prostor pro pověsti. Pojďme si projít dvě úžasné produkty zde iPhone5 a Samsung Galaxy S3. Je to bitva mezi iOS a Androidem, nejlepším mobilním operačním systémem na světě. Projděte si další technické podrobnosti, abyste se dostali k rozhodnutí o dalším nákupu. Apple a Samsung udělali velm...