Πώς να τραβήξετε την εικόνα και να αποθηκεύσετε στη βάση δεδομένων MSSQL χρησιμοποιώντας Java και Selenium Webriver



Αυτό γίνεται με την λήψη του Screenshot χρησιμοποιώντας το Selenium Webdriver και την αποθήκευση στη βάση δεδομένων MS SQL. Η εικόνα αποθηκεύει στη βάση δεδομένων με το όνομα της εικόνας που προστίθεται με το όνομα του προγράμματος περιήγησης, την έκδοση του προγράμματος περιήγησης, τον αριθμό ακολουθίας και το όνομα του σεναρίου. Αυτός ο κώδικας υποστηρίζεται από το Chrome, τον Firefox, τον Internet Explorer και το Safari.

Υπάρχει μια ακόμη επιλογή μεταξύ της γραμμής 63-70 για να αποθηκεύσετε την εικόνα σε έναν τοπικό φάκελο, αν θέλετε. Μπορείτε να ορίσετε ένα φάκελο στο τοπικό σύστημα και θα αποθηκεύσει την εικόνα στο φάκελο που καθορίσατε σε μορφή png και byte μορφής στη βάση δεδομένων MSSql.

Πάρτε Screenshot και αποθηκεύστε στη βάση δεδομένων MSSQL χρησιμοποιώντας Java και Selenium Webriver

πακέτο com.main;

εισαγωγή java.awt.image.BufferedImage;

import java.io.File;

εισαγωγή java.io.FileInputStream;

εισαγωγή java.io.IOException;

εισαγωγή java.io.InputStream;

εισαγωγή java.sql.Σύνδεση.

import java.sql.DriverManager;

εισαγωγή java.sql.PreparedStatement;

εισαγωγή java.sql.ResultSet;

εισαγωγή java.sql.SQLException;

εισαγωγή java.util.Properties;

εισαγωγή java.util.concurrent.TimeUnit;

εισαγωγή javax.imageio.ImageIO;

εισαγωγή org.openqa.selenium.Capabilities;

εισαγωγή org.openqa.selenium.JavascriptExecutor;

εισαγωγή org.openqa.selenium.OutputType;

εισαγωγή org.openqa.selenium.TakesScreenshot;

εισαγωγή org.openqa.selenium.WebDriver;

εισαγωγή org.openqa.selenium.remote.RemoteWebDriver;

δημόσια τάξη ImageSave {

ιδιωτική στατική int imageSeqNo = 0;

ιδιωτικό static String scriptName;

ιδιωτικό static WebDriver browserDriver;

ιδιωτική static int browserWidth;

ιδιωτική static int browserHeight;

δημόσια static String browser?

δημόσιος στατικός οδηγός WebDriver.

δημόσια static int getBrowserWidth () {

επιστροφή του browserWidth;

}}

δημόσιο static int getBrowserHeight () {

επιστροφή του browserHeight;

}}

δημόσιο στατικό string getScenName () {

Επιστροφή στην αρχή

}}

δημόσια static int getImageSeqNo () {

επιστροφή imageSeqNo;

}}

δημόσιο static κενό main (String [] args) ρίχνει εξαίρεση {

// BrowserDriver.getCurrentDriver ();

}}

δημόσια static void addScreenshot (οδηγός WebDriver) ρίχνει IOException,

ClassNotFoundException, InterruptedException {

byte [] scrByte = getScreenShotBytes (οδηγός);

browser = getBrowserAndVersion ();

String scriptName = getScenName ();

Σειρά imageName = σενάριοName + "" + πρόγραμμα περιήγησης + ""

+ System.currentTimeMillis () + ".png".

Αρχείο scrFile = getScreenShotFile (πρόγραμμα οδήγησης);

Οθόνη συμβολοσειράςWidthHeight = getImageWidthHeight (scrFile);

// εάν θέλετε να αποθηκεύσετε την εικόνα της λήψης οθόνης στο τοπικό σύστημα, ενεργοποιήστε την παρακάτω γραμμή

// FileUtils.copyFile (scrFile, νέο αρχείο ("C: // screenshot //" + imageName));

insertImageDB (scrByte, όνομα σεναρίου, imageName, screenWidthHeight,

browser).

Συνένωση σπειρώματος (1000);

}}

δημόσιος στατικός κώδικας getImageWidthHeight (αρχείο imageFile) ρίχνει IOException {

BufferedImage bimg = ImageIO.read (imageFile).

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

αν (imageWidth! = 0) {

επιστροφή imageWidth + "x" + imageHeight;

} else {

επιστροφή "FullScreenx" + imageHeight;

}}

}}

δημόσια static Αρχείο getScreenShotFile (πρόγραμμα οδήγησης WebDriver) {

// WebDriver driverA = νέα Augmenter () augment (driver);

επιστροφή ((TakesScreenshot) πρόγραμμα οδήγησης) .getScreenshotAs (OutputType.FILE);

}}

δημόσιο στατικό byte [] getScreenShotBytes (πρόγραμμα οδήγησης WebDriver) {

επιστροφή ((TakesScreenshot) πρόγραμμα οδήγησης) .getScreenshotAs (OutputType.BYTES);

}}

δημόσιο στατικό κενό insertImageDB (byte [] imageByte, stringName στοιχειοσειράς,

String imageName, οθόνη StringWidthHeight, String browser)

ρίχνει ClassNotFoundException {

Ιδιότητες dbProp = νέες ιδιότητες ();

InputStream dbPropInput = null;

ΑποτέλεσμαSet rs = null;

PreparedStatement ps = null;

Σύνδεση con = null;

/ / setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scriptName + "-" + πρόγραμμα περιήγησης + "-"

+ screenWidthHeight + "- Αριθμός Shot:" + seqNo);

προσπαθήστε {

String propPath = ". \ Src \ test \ resources \ props \ dbConnect.properties";

dbPropInput = νέο αρχείο FileInputStream (propPath);

dbProp.load (dbPropInput); // φορτώστε το αρχείο ιδιοτήτων

String dbDriver = (dbProp.getProperty ("dbDriver")).

String dbURL = (dbProp.getProperty ("dbURL")).

String stPro = (dbProp.getProperty ("SPSql")).

Class.forName (dbDriver);

con = DriverManager.getConnection (dbURL).

ps = con.prepareStatement (stPro).

java.util.Date ημερομηνία = νέα java.util.Date ();

java.sql.Timestamp sqlTimestamp = νέα java.sql.Timestamp (date.getTime ());

System.out.println ("Εικόνα Timestamp =" + sqlTimestamp);

ps.setEscapeProcessing (true);

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 ();

} αλίευση (IOException e) {

e.printStackTrace ();

} αλίευση (SQLException ε) {

e.printStackTrace ();

} τελικά {

προσπαθήστε {

εάν (dbPropInput! = null)

dbPropInput.close ();

αν (rs! = null)

rs.close ();

αν (ps! = null)

ps.close ();

αν (con! = null)

con.close ();

} catch (Εξαίρεση e) {

e.printStackTrace ();

}}

}}

}}

δημόσιο στατικό string getBrowserAndVersion () {

String browser_version = null;

Cap cap = ((RemoteWebDriver)) .getCapabilities ();

String browsername = cap.getBrowserName ();

// Αυτό το μπλοκ για να μάθετε τον αριθμό έκδοσης IE

αν ("Internet Explorer" .equalsIgnoreCase (όνομα χρήστη)) {

String uAgent = (String) ((JavascriptExecutor) πρόγραμμα οδήγησης)

.executeScript ("επιστροφή 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).

} else if (uAgent.contains ("Trident / 7.0")) {

browser_version = "11.0";

} else {

browser_version = "00";

}}

} else {

// Έκδοση προγράμματος περιήγησης για Firefox και Chrome

browser_version = cap.getVersion (); // .split (".") [0];

}}

String browserversion = browser_version.substring (0,

browser_version.indexOf ("."));

Συμβολοσειρά bVersion = String.format ("% 02d", Integer.parseInt (browserversion));

επιστροφή ((όνομα χρήστη) + "_" + bVersion);

}}

δημόσιο στατικό πρόγραμμα περιήγησης γραμμώνNameConvert (συμβολοσειρά όνομα_διακομιστή) {

αν (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

όνομα προγράμματος περιήγησης, "εξερευνητής")) {

επιστροφή "IE";

} else αν (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, "firefox")) {

επιστροφή "FF";

} else αν (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

browser_name, "chrome")) {

επιστροφή "CH";

} else αν (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

όνομα_αναζήτησης, "σαφάρι")) {

επιστροφή "SF";

} else {

επιστροφή "NA";

}}

}}

}}

Αρχείο αρχείου ιδιοτήτων σύνδεσης βάσης δεδομένων MSSQL με τα διαπιστευτήρια χρήστη και τη διαδικασία αποθήκευσης

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

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = jdbc: sqlserver: // YOURSERVERURL; βάση δεδομένων = DATABASENAME; user = USERNAME; password = PASSWORD

SPSql = {κλήση STOREPROCEDURE (?, ?, ?, ?, ?, ?, ?, ?)}

Για να αποθηκεύσετε στη βάση δεδομένων, η διαδικασία αποθήκευσης που έχει ήδη δημιουργηθεί σε αυτό το παράδειγμα και όλα αυτά τα δεδομένα για τη σύνδεση της βάσης δεδομένων και τη διαδικασία αποθήκευσης παρατίθενται στο αρχείο ιδιότητας.

Το όνομα του προγράμματος περιήγησης μετατρέπεται σε 2 char σύντομες φόρμες όπως το FF (Firefox), το CH (Chrome) κτλ. Αυτό είναι επίσης ικανό να βρει την προγραμματισμένη έκδοση προγράμματος περιήγησης, συμπεριλαμβανομένου του αριθμού έκδοσης του Internet Explorer. Αυτή η δέσμη ενεργειών υποστηρίζει τις εκδόσεις Internet Explorer 8, 9, 10, 11.

Προηγούμενο Άρθρο

Πώς να αποκλείσετε κλήσεις και μηνύματα στο iOS 7 από έναν αριθμό

Πώς να αποκλείσετε κλήσεις και μηνύματα στο iOS 7 από έναν αριθμό

Παίρνετε πάρα πολλές κλήσεις ενοχλητικό; Θέλετε πραγματικά να αποκλείσετε τις διαφημίσεις μάρκετινγκ ή τη συλλογή; Το iOS 7 προσφέρει ισχυρή λειτουργία για να αποκλείει κλήσεις και μηνύματα από επιλεκτικούς αριθμούς. Είναι εύκολο να κάνετε μπλοκαρίσματα και μηνύματα σε ένα μόνο βήμα. Ανοίξτε την εφαρμογή τηλεφώνου στο iOS7 και πατήστε Πρόσφατες για να δείτε το ιστορικό κλήσεων. Επιλέξτε τον α...

Επόμενο Άρθρο

7 καλύτερη εφαρμογή Math Problem Solver για Android και iPhone

7 καλύτερη εφαρμογή Math Problem Solver για Android και iPhone

Μαθηματικά, ένα δύσκολο να σπάσει το θέμα για τους περισσότερους μαθητές, αλλά είναι εύκολο να μάθεις αν καταλαβαίνεις πώς λειτουργεί. Με το smartphones και τις εφαρμογές solver math, αυτό είναι εύκολο τώρα. Αυτές οι εφαρμογές solver προβλημάτων μαθηματικών ή η κάμερα υπολογίζει ότι φέρνουν μια λύση μόλις σαρώσετε το πρόβλημα μαθηματικών με τη μηχανή And...