जावा और सेलेनियम वेब्राइवर का उपयोग करके MSSQL डेटाबेस में स्क्रीनशॉट और सेव कैसे लें



यह सेलेनियम वेबड्राइवर का उपयोग करके स्क्रीनशॉट लेने और एमएस SQL ​​डेटाबेस में सहेजने के लिए है। छवि डेटाबेस में सहेज रही है छवि नाम के साथ ब्राउज़र नाम, ब्राउज़र संस्करण, अनुक्रम संख्या और परिदृश्य नाम के साथ परिशिष्ट। यह कोड Chrome, Firefox, Internet Explorer और Safari समर्थित है।

यदि आप चाहें तो चित्र को स्थानीय फ़ोल्डर में सहेजने के लिए लाइन 63-70 के बीच एक और विकल्प है। आप स्थानीय सिस्टम में एक फ़ोल्डर सेट कर सकते हैं और यह तस्वीर को आपके द्वारा MSSql डेटाबेस में png प्रारूप और बाइट प्रारूप में निर्दिष्ट फ़ोल्डर में सहेज देगा।

स्क्रीनशॉट लें और जावा और सेलेनियम वेब्राइवर का उपयोग करके MSSQL डेटाबेस में सहेजें

पैकेज com.main;

आयात java.awt.image.BufferedImage;

आयात java.io.File;

आयात java.io.FileInputStream;

आयात java.io.IOException;

आयात java.io.InputStream;

आयात java.sql.Connection;

आयात 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.Cabilities;

आयात 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;

निजी स्थिर स्ट्रिंग दर्शनीय स्थल;

निजी स्थिर वेबड्राइवर ब्राउज़रड्राइवर;

निजी स्थिर इंट ब्राउजर;

निजी स्थिर इंट ब्राउज़रहाइट;

सार्वजनिक स्थैतिक स्ट्रिंग ब्राउज़र;

सार्वजनिक स्थैतिक वेबड्राइवर चालक;

सार्वजनिक स्थैतिक int getBrowserWidth () {

browserWidth लौटें;

}

सार्वजनिक स्थैतिक int getBrowserHeight () {

BrowserHeight पर लौटें;

}

सार्वजनिक स्थैतिक स्ट्रिंग getScenName () {

दर्शनीय स्थल का नाम;

}

सार्वजनिक स्थैतिक int getImageSeqNo () {

वापसी की छवि

}

सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) अपवाद {

// BrowserDriver.getCurrentDriver ();

}

सार्वजनिक स्थैतिक शून्य addScreenshot (WebDriver ड्राइवर) IOException को फेंकता है,

ClassNotFoundException, InterruptedException {

बाइट [] scrByte = getScreenShotBytes (ड्राइवर);

ब्राउज़र = getBrowserAndVersion ();

स्ट्रिंग परिदृश्यनाम = getScenName ();

स्ट्रिंग छविनाम = परिदृश्यनाम + "" + ब्राउज़र + ""

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

फ़ाइल स्क्रिफ़ाइल = getScreenShotFile (ड्राइवर);

स्ट्रिंग स्क्रीनवाइटहाइट = getImageWidthHeight (scrFile);

// यदि स्थानीय सिस्टम में स्क्रीन शॉट चित्र को सहेजना चाहते हैं, तो नीचे की रेखा को सक्षम करें

// FileUtils.copyFile (scrFile, नई फ़ाइल ("C: // स्क्रीनशॉट //" + imageName));

निवेशनमैबीडीबी (स्क्रबट, परिदृश्यनाम, इमेजनेम, स्क्रीनविदहाइट,

ब्राउज़र);

Thread.Sleep (1000);

}

सार्वजनिक स्थिर स्ट्रिंग getImageWidthHeight (फ़ाइल छवि फ़ाइल) IOException को फेंकता है {

बफ़रेडइमेज bimg = ImageIO.read (imageFile);

int imageWidth = bimg.getWidth ();

int imageHeight = bimg.getHeight ();

अगर (चित्र। = 0) {

वापसी छविवार्ड + "x" + imageHeight;

} अन्य {

वापसी "FullScreenx" + imageHeight;

}

}

सार्वजनिक स्थैतिक फ़ाइल getScreenShotFile (वेबड्राइवर ड्राइवर) {

// WebDriver driverA = new Augmenter ()। वृद्धि (ड्राइवर);

वापसी (TakesScreenshot) ड्राइवर) .getScreenshotAs (OutputType.FILE);

}

जनता स्टेटिक बाइट [] getScreenShotBytes (वेबड्राइवर ड्राइवर) {

वापसी ((TakesScreenshot) ड्राइवर) .getScreenshotAs (OutputType.BYTES);

}

सार्वजनिक स्थैतिक शून्य सम्मिलित करेंआईएमबीडीबी (बाइट [] इमेजबाइट, स्ट्रिंग नेमनाम,

स्ट्रिंग छविनाम, स्ट्रिंग स्क्रीनवार्डहाइट, स्ट्रिंग ब्राउज़र)

फेंकता ClassNotFoundException {

गुण dbProp = नए गुण ();

इनपुटस्ट्रीम dbPropInput = null;

परिणामी rs = null;

तैयार किया हुआ ps = null;

कनेक्शन con = null;

// setImageSeqNo (getImageSeqNo () + 1);

int seqNo = getImageSeqNo ();

System.out.println (scenName + ”- ”+ ब्राउज़र +” - ”

+ स्क्रीनवाइटहाइट + "- शॉट नंबर:" + seNNo);

प्रयत्न {

स्ट्रिंग PropPath = "। \ Src \ test \ Resources \ props \ dbConnect.properties";

dbPropInput = new FileInputStream (propPath);

dbProp.load (dbPropInput); // लोड संपत्ति फ़ाइल

स्ट्रिंग 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 ("छवि टाइमस्टैम्प =" + sqlTimestamp);

ps.setEscapeProcessing (सही);

ps.setQueryTimeout (90); // टाइमआउट मान बाद में अक्षम हो सकता है, चित्र

ps.setString (1, "प्रोजेक्ट");

ps.setString (2, दर्शनीयनाम);

ps.setString (3, ब्राउज़र);

ps.setString (4, स्क्रीनविथ हाइट);

ps.setTimestamp (5, sqlTimestamp);

ps.setInt (6, seqNo);

ps.setString (7, imageName);

ps.setBytes (8, imageByte);

// डेटा बेस अपडेट को निष्क्रिय करने के लिए नीचे की पंक्ति

ps.executeUpdate ();

} कैच (IOException e) {

e.printStackTrace ();

} कैच (SQLException e) {

e.printStackTrace ();

} आखिरकार {

प्रयत्न {

अगर (dbPropInput! = null)

dbPropInput.close ();

अगर (rs! = null)

rs.close ();

अगर (पीएस = शून्य)

ps.close ();

अगर (con! null)

con.close ();

} पकड़ (अपवाद ई) {

e.printStackTrace ();

}

}

}

सार्वजनिक स्थैतिक स्ट्रिंग getBrowserAndVersion () {

स्ट्रिंग Browser_version = null;

क्षमता टोपी = ((RemoteWebDriver) ड्राइवर) .getCapabilities ();

स्ट्रिंग ब्राउज़रनाम = cap.getBrowserName ();

// यह ब्लॉक IE संस्करण संख्या का पता लगाने के लिए

अगर ("इंटरनेट एक्सप्लोरर" .equalsIgnoreCase (ब्राउज़रनाम)) {

स्ट्रिंग uAgent = (स्ट्रिंग) ((JavascriptExecutor) ड्राइवर)

.executeScript ("रिटर्न नेविगेटर.यूज़रएजेंट;");

Println (uAgent);

// u8 के लिए "MSIE 8.0 विंडोज" के रूप में uAgent रिटर्न

अगर (uAgent.contains ("MSIE") && uAgent.contains ("Windows")) {

Browser_version = uAgent.substring (uAgent.indexOf ("MSIE") + 5,

uAgent.indexOf ("विंडोज") - 2);

} और यदि (uAgent.contains ("त्रिशूल / 7.0")) {

Browser_version = "11.0";

} अन्य {

Browser_version = "00";

}

} अन्य {

// फ़ायरफ़ॉक्स और क्रोम के लिए ब्राउज़र संस्करण

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

}

स्ट्रिंग भौंकना = browser_version.substring (0,

browser_version.indexOf ( "।"));

स्ट्रिंग bVersion = String.format ("% 02d", Integer.parseInt (browserversion));

वापसी (ब्राउज़रनाम) + "_" + bVersion);

}

सार्वजनिक स्थैतिक स्ट्रिंग BrowserNameConvert (स्ट्रिंग ब्राउज़र_नाम) {

अगर (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

Browser_name, "एक्सप्लोरर")) {

वापसी "IE";

} और अगर (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

Browser_name, "फ़ायरफ़ॉक्स")) {

वापसी "एफएफ";

} और अगर (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

Browser_name, "क्रोम"))) {

वापसी "सीएच";

} और अगर (org.apache.commons.lang3.StringUtils.containsIgnoreCase (

Browser_name, "सफारी")) {

वापसी "एसएफ";

} अन्य {

वापसी "NA";

}

}

}

उपयोगकर्ता क्रेडेंशियल्स और स्टोर प्रक्रिया के साथ MSSQL डाटाबेस कनेक्शन संपत्ति फ़ाइल

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

dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver

dbURL = JDBC: sqlserver: // YOURSERVERURL; डेटाबेस = DatabaseName; उपयोगकर्ता = USERNAME; पासवर्ड = पासवर्ड

SPSql = {कॉल STOREPROCEDURE (?;?; ?, ?, ?, ?, ?, ?)}

डेटाबेस में सहेजने के लिए, इस उदाहरण में पहले से बनाई गई स्टोर प्रक्रिया और डेटाबेस कनेक्शन और स्टोर प्रक्रिया के लिए ये सभी डेटा संपत्ति फ़ाइल में सूचीबद्ध हैं।

ब्राउज़र का नाम 2 चार लघु रूपों जैसे एफएफ (फ़ायरफ़ॉक्स), सीएच (क्रोम) आदि में परिवर्तित होता है। यह इंटरनेट एक्सप्लोरर संस्करण संख्या सहित प्रोग्राम वर्जन को खोजने में सक्षम है। यह स्क्रिप्ट इंटरनेट एक्सप्लोरर संस्करण 8, 9, 10, 11 का समर्थन करती है।

पिछला लेख

यूएस और कनाडा को कॉल करने के लिए फ्री लैंडलाइन कैसे सेटअप करें?

यूएस और कनाडा को कॉल करने के लिए फ्री लैंडलाइन कैसे सेटअप करें?

क्या आपको लगता है कि आप लैंडलाइन के लिए अधिक भुगतान कर रहे हैं? ठीक है, हम मासिक शून्य डॉलर के भुगतान के साथ एक बिल्कुल मुफ्त घर फोन स्थापित करने में मदद कर सकते हैं। यह वर्कअराउंड आपको बिना किसी अतिरिक्त शुल्क के मुफ्त लैंडलाइन फोन नंबर प्राप्त करके अपने आवासीय फोन बिल पर पैसे बचाने के लिए दिखाने जा रहा है। इस मुफ्त लैंडलाइन फोन के साथ आपको मासिक या वार्षिक टेलीफोन शुल्क के बारे में चिंता करने की आवश्यकता नहीं है। यह आपको आजीवन मुफ्त लैंडलाइन फोन कनेक्शन के लिए $ 70.00 से कम की एक बार की डिवाइस कीमत चुकाने वाला है। यह समाधान Google वॉइस खाते का उपयोग ओबी डिवाइस के साथ कर रहा है जो आपको यूएस और...

अगला लेख

IPhone पर क्रोम को डिफ़ॉल्ट ब्राउज़र के रूप में उपयोग करने के 10 लाभ

IPhone पर क्रोम को डिफ़ॉल्ट ब्राउज़र के रूप में उपयोग करने के 10 लाभ

यदि आप इस भ्रम में हैं कि सफारी iPhone के लिए सबसे अच्छा ब्राउज़र है, तो आप इस पोस्ट को पढ़ने के बाद अपनी राय पर पुनर्विचार करेंगे। हाल ही में, क्रोम ने एक बेहतर उपयोगकर्ता अनुभव प्रदान करने के लिए मोबाइल ब्राउज़र (अपने 10 वें जन्मदिन की पूर्व संध्या पर) में बहुत सुधार किया है। इसमें कोई शक नहीं, iOS 12 में कंटेंट प्रतिबंध या ऑटो-फिल पासवर्ड के बेहतर संस्करण जैसे फीचर्स केवल सफारी के साथ काम करेंगे। हालांकि, सर्वश्रेष्ठ ब्राउज़र तय करने के लिए यह एकमात्र मानदंड नहीं है। भले ही क्रोम को iPhone पर डिफ़ॉल्ट ब्राउज़र के रूप में बनाना संभव नहीं है, फिर भी आप अपने होम स्क्रीन से ऐप को मैन्युअल रूप से...