Как да направите скрийншот и да запишете в MSSQL база данни, използвайки Java и Selenium Webriver



Това е да се вземе Screenshot използване Selenium Webdriver и да се запишете в MS SQL база данни. Изображението се записва в базата данни с името на изображението, което се добавя с името на браузъра, версията на браузъра, поредния номер и името на сценария. Този код се поддържа от Chrome, Firefox, Internet Explorer и Safari.

Има още една опция между линия 63-70, за да запазите картината в локална папка, ако желаете. Можете да зададете папка в локалната система и тя ще запази картината в папката, която сте задали във формат png и формат на байт в MSSql база данни.

Направете скрийншот и запишете в базата данни MSSQL, като използвате Java и Selenium Webriver

пакет 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;

внос 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;

обществен клас ImageSave {

private static int imageSeqNo = 0;

частен статичен String scenName;

частен статичен браузър на WebDriver;

частен статичен int browserWidth;

частен статичен int browserHeight;

публичен статичен String браузър;

публичен статичен драйвер на WebDriver;

публично статично int getBrowserWidth () {

връщане на браузъра;

}

публично статично int getBrowserHeight () {

връщане на браузъра;

}

публично статично String getScenName () {

връщане scenName;

}

публично статично int getImageSeqNo () {

return imageSeqNo;

}

public static void main (String [] args) хвърля изключение {

// BrowserDriver.getCurrentDriver ();

}

public static void addScreenshot (драйверът на WebDriver) хвърля IOException,

ClassNotFoundException, InterruptedException {

byte [] scrByte = getScreenShotBytes (драйвер);

browser = getBrowserAndVersion ();

String scenarioName = getScenName ();

String imageName = scenarioName + ”” + браузър + “”

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

Файл scrFile = getScreenShotFile (драйвер);

String screenWidthHeight = getImageWidthHeight (scrFile);

// ако искате да запишете снимката на екрана в локалната система, активирайте линията по-долу

// FileUtils.copyFile (scrFile, нов файл (“C: // screenshot //” + imageName));

insertImageDB (scrByte, име на сценарий, име на изображение, screenWidthHeight,

браузър);

Thread.sleep (1000);

}

публичен статичен String getImageWidthHeight (File imageFile) хвърля IOException {

BufferedImage bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

if (imageWidth! = 0) {

връщане imageWidth + “x” + imageHeight;

} else {

върнете “FullScreenx” + imageHeight;

}

}

публичен статичен файл getScreenShotFile (драйвер на WebDriver) {

// WebDriver driverA = new Augmenter (). Augment (driver);

return ((TakesScreenshot) драйвер) .getScreenshotAs (OutputType.FILE);

}

публичен статичен байт [] getScreenShotBytes (драйвер на WebDriver) {

return ((TakesScreenshot) драйвер) .getScreenshotAs (OutputType.BYTES);

}

публична статична невалидна insertImageDB (байт [] imageByte, String scenName,

String imageName, String screenWidthHeight, String браузър)

хвърля ClassNotFoundException {

Свойства dbProp = new Properties ();

InputStream dbPropInput = null;

ResultSet rs = null;

PreparedStatement ps = null;

Връзка con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scenName + ”—-“ + браузър + ”—-“

+ screenWidthHeight + ”- Номер на изстрел:” + seqNo);

опитвам {

String propPath = “. \ T

dbPropInput = нов FileInputStream (propPath);

dbProp.load (dbPropInput); // зареждане на файл със свойства

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

Строка dbURL = (dbProp.getProperty (“dbURL”));

Строка 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 = new java.sql.Timestamp (date.getTime ());

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

ps.setEscapeProcessing (истина);

ps.setQueryTimeout (90); // стойността на таймаута може да бъде забранена по-късно, картина

ps.setString (1, “Проект”);

ps.setString (2, scenName);

ps.setString (3, браузър);

ps.setString (4, screenWidthHeight);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, imageName);

ps.setBytes (8, imageByte);

// коментар под линията за деактивиране на актуализирането на базата данни

ps.executeUpdate ();

} catch (IOException e) {

e.printStackTrace ();

} catch (SQLException e) {

e.printStackTrace ();

} най-накрая {

опитвам {

if (dbPropInput! = null)

dbPropInput.close ();

ако (rs! = null)

rs.close ();

ако (ps! = null)

ps.close ();

ако (con! = null)

con.close ();

} catch (Exception e) {

e.printStackTrace ();

}

}

}

публично статично String getBrowserAndVersion () {

String browser_version = null;

Capabilities cap = ((RemoteWebDriver) драйвер) .getCapabilities ();

String browsername = cap.getBrowserName ();

// Този блок, за да разберете номера на IE версия

if (“Internet Explorer” .equalsIgnoreCase (име на браузъра)) {

String uAgent = (String) (драйвер на JavascriptExecutor))

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

System.out.println (uAgent);

// uAgent се връща като “MSIE 8.0 Windows” за IE8

ако (uAgent.contains (“MSIE”) && uAgent.contains (“Windows”)) {

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

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

} друго, ако (uAgent.contains (“Trident / 7.0”)) {

browser_version = “11.0”;

} else {

browser_version = “00”;

}

} else {

// Версия на браузъра за Firefox и Chrome

// .split (“.”) [0];

}

String browserversion = browser_version.substring (0,

browser_version.indexOf ( "."));

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

връщане ((име на браузъра) + „_“ + bVersion);

}

публично статично String browserNameConvert (String browser_name) {

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

browser_name, “explorer”)) {

връщане „IE“;

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

browser_name, “firefox”)) {

връщане “FF”;

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

browser_name, “chrome”)) {

връщане “CH”;

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

browser_name, “safari”)) {

връщане “SF”;

} else {

връщане „NA“;

}

}

}

Файл с свойствата на MSSQL базата данни с потребителски идентификационни данни и процедура за съхранение

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

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = JDBC: SQLServer: // YOURSERVERURL; база данни = DATABASENAME; потребителското = USERNAME; парола = ПАРОЛА

SPSql = {наречете STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)?

За да запишете в базата данни, процедурата за съхранение вече е създадена в този пример и всички тези данни за свързване на база данни и процедура за съхранение са изброени в файла със свойства.

Името на браузъра се превръща в 2 char кратки форми като FF (Firefox), CH (Chrome) и т.н. Това също е в състояние да намери версия на браузъра програмно, включително номера на Internet Explorer. Този скрипт поддържа версии на Internet Explorer 8, 9, 10, 11.

Предишна Статия

Google Family Link: Пълно ръководство за родителски контрол на Android

Google Family Link: Пълно ръководство за родителски контрол на Android

Facebook кикотене Pinterest WhatsApp телеграма Google Family Link - мобилно приложение (достъпно както за Android, така и за iPhone) ви помага да наблюдавате и контролирате използването на смартфоните на децата си. Плюс това, Семейната връзка ви позволява да задавате различни видове ограничения на базата на възрастта на децата ви. Родит...

Следваща Статия

10 Най-добрите Apple Watch зарядни устройства и аксесоари

10 Най-добрите Apple Watch зарядни устройства и аксесоари

Image Кредит Amazon Facebook кикотене Pinterest WhatsApp телеграма Когато обмисляте закупуването на нов Apple Watch, трябва да помислите и за някои аксесоари, за да защитите инвестицията си. Нито часовникът на Apple, нито разходите за ремонт са евтини. Най-добрият списък с аксесоари за часовниците Appel...