Как да направите скрийншот и да запишете в 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.

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

Как да изберем правилния SSL сертификат за бизнес уебсайт?

Как да изберем правилния SSL сертификат за бизнес уебсайт?

Време е да превключите уебсайт от HTTP към HTTPS и да имате нужда от SSL сертификат за вашия сайт? Google ще покаже предупреждение "Не е сигурно" на HTTP сайтове, които събират пароли и информация за кредитни карти. Да, точно сега е моментът да превключите към защитата на мрежата и да се уверите, че бизнес сайтът ви на блог, обслужващ https страници с SSL защита. ...

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

Как да изберем правилния SSL сертификат за бизнес уебсайт?

Как да изберем правилния SSL сертификат за бизнес уебсайт?

Време е да превключите уебсайт от HTTP към HTTPS и да имате нужда от SSL сертификат за вашия сайт? Google ще покаже предупреждение "Не е сигурно" на HTTP сайтове, които събират пароли и информация за кредитни карти. Да, точно сега е моментът да превключите към защитата на мрежата и да се уверите, че бизнес сайтът ви на блог, обслужващ https страници с SSL защита. ...