जावा और सेलेनियम वेब्राइवर का उपयोग करके 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 का समर्थन करती है।

पिछला लेख

सर्वश्रेष्ठ दूरस्थ डेस्कटॉप मैक ग्राहक मैक को दूरस्थ रूप से एक्सेस करने के लिए।

सर्वश्रेष्ठ दूरस्थ डेस्कटॉप मैक ग्राहक मैक को दूरस्थ रूप से एक्सेस करने के लिए।

फेसबुक ट्विटर Pinterest WhatsApp तार चाहे वह एक समर्थन कॉल की आवश्यकता हो या अपने मित्र के साथ स्क्रीन साझा करना, कुछ निश्चित समय होते हैं जब हमें मैक के लिए एक दूरस्थ डेस्कटॉप क्लाइंट की आवश्यकता होती है। समर्पित मैक रिमोट डेस्कटॉप क्लाइंट के साथ, आप जल्दी से किसी अन्य मशीन से दूरस्थ कंप्यूटर में टैप कर सकते हैं। ये मैक क्लाइंट टेक सपोर्ट सेवाओं के लिए उत्कृष्ट उपकरण हैं, जो दूरस्थ कंप्यूटर को कुछ ही सेकंड में एक्सेस कर सकते हैं। Apple दूरस्थ डेस्कटॉप क्लाइंट के साथ, आप कुशलतापूर्वक व्यक्तिगत कंप्यूटर के वातावरण को एक सिस्टम पर दूरस्थ रूप से चला सकते हैं। रिमोट डेस्कटॉप मैक क्लाइंट कई तरीकों स...

अगला लेख

पुरानी तस्वीरों को स्कैन करने के लिए 7 सर्वश्रेष्ठ एंड्रॉइड ऐप

पुरानी तस्वीरों को स्कैन करने के लिए 7 सर्वश्रेष्ठ एंड्रॉइड ऐप

हम आधुनिक दुनिया में हैं, और अब कोई नकारात्मक फिल्म और फिल्म फोटोग्राफी नहीं है। पुराने समय ने यादों को बनाए रखने के लिए रासायनिक रूप से संवेदी कागज की मांग की। अब यह भूमिका स्मार्टफोन और मेमोरी कार्ड ने ले ली। पिछली पुरानी यादों को संरक्षित करने के लिए अपनी पुरानी तस्वीरों को डिजिटल प्रारूप में बदलने का यह सही समय है। आपका स्मार्टफोन बिना किसी झंझट के तस्वीरों के लिए स्कैनर ऐप के साथ फ़ोटो को डिजिटाइज़ करने का सबसे अच्छा उपाय है। आइए पुरानी तस्वीरों को स्कैन करने और उन्हें आजीवन संरक्षित करने के लिए डिजिटल फ़ोटो में बदलने के लिए उत्कृष्ट एंड्रॉइड ऐप पर एक नज़र डालें। गूगल फोटो स्कैन Google से ...