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

7 nejlepších manažerů křížových platforem hesel, aby bylo zajištěno soukromé zabezpečení dat.

7 nejlepších manažerů křížových platforem hesel, aby bylo zajištěno soukromé zabezpečení dat.

Facebook Cvrlikání Pinterest WhatsApp Telegram Když hledáte bezpečného správce hesel, můžete získat spoustu z nich. Když však zúžíte výsledek pro nejlepší správce hesel pro chytrý telefon a počítač, možnosti jsou omezené. Dobrý správce hesel by měl fungovat na všech platformách včetně systémů Windows, Mac, Linux, iOS a Android. A pro všechny tyto platformy by ...

Následující Článek

Jak vyhledávat v telefonu nebo tabletu s obsahem Androidu Podobně jako iOS

Jak vyhledávat v telefonu nebo tabletu s obsahem Androidu Podobně jako iOS

Přemýšlíte někdy o tom, jak vyhledávat zařízení se systémem Android a vyhledat aplikace a kontakty v zařízení. V systému iOS je k dispozici obrazovka rychlého vyhledávání, která najde vše uvnitř zařízení iOS. Naštěstí vaše zařízení se systémem Android je také přichází se stejnou vyhledávací sílu, která je schopna zjistit všechny kontakty, aplikace a dokumenty, jako je funkce vyhledávání iOS. Namísto oddělené vyhledávací obrazovky, ja...