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

10 καλύτερο ηχοσύστημα για τηλεόραση με WiFi και HDMI Συνδεσιμότητα.

Οι πιο σύγχρονες ηχητικές λωρίδες τηλεόρασης διαθέτουν σύνδεση Wi-Fi και Bluetooth. Εκτός αυτού, υπάρχει σύνδεση HDMI και AUX για ενσύρματη σύνδεση εάν απαιτείται. Για βυθιζόμενες εμπειρίες ήχου, είναι απαραίτητο ο ήχος να ρέει πραγματικά στον αέρα και οι κτύποι είναι πραγματικά αισθητές. Αυτοί οι τύποι ηχείων απλά δεν θα χωρέσουν μέσα σε ένα λεπτό πλαίσιο τηλεόρασης και χρειάζεστε απλώς μια επιπλέον ηχητική μπάρα τηλεόρασης. Οι ασύρματες ηχοστάθμες είναι φορητές και μπορείτε να μετακινηθείτε οπουδήποτε κ...

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

10 Χρήσιμες εφαρμογές που μπορούν να εμπλουτίσουν την εμπειρία Windows10.

10 Χρήσιμες εφαρμογές που μπορούν να εμπλουτίσουν την εμπειρία Windows10.

Η Microsoft κυκλοφορεί την πιο πρόσφατη επανάληψη των πολύ γνωστών Windows στους χρήστες στις 29 Ιουλίου με την ονομασία Windows 10. Όπως όλοι γνωρίζουν, αυτό θα είναι ο διάδοχος της τελευταίας τους έκδοσης Windows 8, η οποία σχεδιάστηκε για χρήση σε συσκευές με βάση την αφή. Παρόλο που η Microsoft κυκλοφόρησε μια άλλη έκδοση που ονομάζεται Windows 8.1 ως συνέχεια των Windows 8, η οποία θεωρεί ως μια ενημέρωση των Windows 8, η οποία έφερε την καλύτερη δυνατή χρήσ...