Πώς να τραβήξετε την εικόνα και να αποθηκεύσετε στη βάση δεδομένων 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.

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

10 άκρες για τη διατήρηση της μπαταρίας iPhone για έκτακτη ανάγκη

10 άκρες για τη διατήρηση της μπαταρίας iPhone για έκτακτη ανάγκη

Facebook Κελάδημα Pinterest WhatsApp Τηλεγράφημα Ας φανταστούμε ότι πρέπει να κάνετε μια κλήση έκτακτης ανάγκης από το iPhone σας και η μπαταρία σας είναι πολύ χαμηλή. Δυστυχώς, δεν έχετε καλώδιο φόρτισης ή τράπεζα τροφοδοσίας για να φορτίσετε το τηλέφωνό σας. Τι θα κάνεις? Ακολουθούν ορισμένες συμβουλές για την αποθήκευση της μπαταρίας του iPhone σε περίπτωση έκτακτης ανάγκης όταν δεν υπάρχει εναλλακτική πηγή ενέργειας. 1. Απενεργοποιήστε το...

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

7 δωρεάν εφαρμογές για τη μεταφορά αρχείων μεταξύ Android και Mac μέσω WiFi

7 δωρεάν εφαρμογές για τη μεταφορά αρχείων μεταξύ Android και Mac μέσω WiFi

Παρόλο που οι υπολογιστές Mac και οι κινητές συσκευές Android είναι δύσκολες να συνεργαστούν, υπάρχουν κάποιες καλές λύσεις για την αντιστοίχιση και τη μεταφορά αρχείων μεταξύ Android και Mac μέσω Wi-Fi. Τις περισσότερες φορές μπορεί να χρειαστεί να μεταφέρετε φωτογραφίες και βίντεο από το Android σε Mac ή ίσως χρειαστεί να αντιγράψετε την αγαπημ...