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

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

Πώς να κάνετε δωρεάν κλήσεις και να στέλνετε κείμενα χρησιμοποιώντας το iPad ή το iPod

Πώς να κάνετε δωρεάν κλήσεις και να στέλνετε κείμενα χρησιμοποιώντας το iPad ή το iPod

Facebook Κελάδημα Pinterest WhatsApp Τηλεγράφημα Το Google Voice είναι μια δωρεάν υπηρεσία από την Google που μπορεί να χρησιμοποιήσει για να κάνει δωρεάν κλήσεις και απεριόριστα κείμενα στις ΗΠΑ και τον Καναδά. Το Google Voice μπορεί να χρησιμοποιηθεί για τη μετατροπή του iPad ή του iPod σε κινητό τηλέφωνο που μπορεί να λαμβάνει και να κάνει κλ...

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

Πώς να στέλνετε GIF στο iMessage με iPhone και iPad;

Πώς να στέλνετε GIF στο iMessage με iPhone και iPad;

Έχετε προσπαθήσει ποτέ να στείλετε GIFs στο iMessage; Θέλετε να κάνετε κάποια διασκέδαση με τους φίλους σας με GIF; Οι πρόσφατες ενημερώσεις από την Apple σας επιτρέπουν να στέλνετε GIF στο iMessage. Το προεπιλεγμένο πληκτρολόγιο iOS υποστηρίζει την αναζήτηση και αποστολή GIF απευθείας στο iMessage με το προεπιλεγμένο πληκτρολόγιο...