इस ट्यूटोरियल में, हम सीखेंगे कि फाइल अपलोड और डाउनलोड से कैसे निपटें।
फ़ाइलें अपलोड कर रहा है
इस अनुभाग के लिए, हम अपने परीक्षण आवेदन के रूप में http://demo.guru99.com/test/upload/ का उपयोग करेंगे। यह साइट आसानी से किसी भी आगंतुक को साइन अप करने की आवश्यकता के बिना फ़ाइलों को अपलोड करने की अनुमति देती है।
WebDriver में फ़ाइलें अपलोड करना फ़ाइल अपलोड करने के लिए पथ दर्ज करने के लिए फ़ाइल-चयन इनपुट फ़ील्ड पर sendKeys () पद्धति का उपयोग करके किया जाता है।

मान लें कि हम "C: \ newhtml.html" फ़ाइल अपलोड करना चाहते हैं। हमारा वेबड्राइवर कोड नीचे दिखाए गए जैसा होना चाहिए।
पैकेज न्यूप्रोजेक्ट;आयात org.openqa.selenium। *;आयात org.openqa.selenium.firefox.FirefoxDriver;पब्लिक क्लास PG9 {सार्वजनिक स्थैतिक शून्य main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");स्ट्रिंग आधार = "http://demo.guru99.com/test/upload/";WebDriver ड्राइवर = नया FirefoxDriver ();Driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// फ़ाइल-चयन इनपुट फ़ील्ड पर फ़ाइल पथ दर्ज करेंuploadElement.sendKeys ("C: \\ newhtml.html");// "मैं सेवा की शर्तें स्वीकार करता हूं" चेक बॉक्स चेक करेंDriver.findElement (By.id ("शर्तें"))। क्लिक करें ();// "UploadFile" बटन पर क्लिक करेंDriver.findElement (By.name ("भेजें"))। क्लिक करें ();}}
इस स्क्रिप्ट को चलाने के बाद, आपको फ़ाइल को सफलतापूर्वक अपलोड करने में सक्षम होना चाहिए और आपको इसके समान संदेश प्राप्त करना चाहिए।
WebDriver में फाइल अपलोड करते समय दो बातों का ध्यान रखें
- "ब्राउज़ करें" बटन पर क्लिक करने की आवश्यकता नहीं है। WebDriver स्वचालित रूप से <इनपुट प्रकार = "फ़ाइल"> तत्व के फ़ाइल-चयन टेक्स्ट बॉक्स पर फ़ाइल पथ में प्रवेश करता है
- अपने जावा आईडीई में फ़ाइल पथ सेट करते समय, बैक-स्लेश के लिए उचित एस्केप चरित्र का उपयोग करें।
फ़ाइलें डाउनलोड कर रहा है
जब आप डाउनलोड लिंक या बटन पर क्लिक करते हैं तो WebDriver में ब्राउज़रों द्वारा प्रस्तुत डाउनलोड संवाद बॉक्स तक पहुंचने की कोई क्षमता नहीं होती है । हालाँकि, हम "wget" नामक एक अलग प्रोग्राम का उपयोग करके इन डायलॉग बॉक्स को बायपास कर सकते हैं।
Wget क्या है?
Wget एक छोटी और आसानी से उपयोग होने वाली कमांड-लाइन प्रोग्राम है जिसका उपयोग डाउनलोडों को स्वचालित करने के लिए किया जाता है । असल में, हम डाउनलोड प्रक्रिया को पूरा करने के लिए अपनी वेबड्राइवर स्क्रिप्ट से Wget तक पहुंचेंगे।
Wget की स्थापना
चरण 1: अपने सी ड्राइव में, एक नया फ़ोल्डर बनाएं और इसे "Wget" नाम दें।
यहाँ से wget.exe डाउनलोड करें और इसे Wget फ़ोल्डर में रखें, जो आपने ऊपर चरण से बनाया है।
चरण 2: विंडोज़ कुंजी + "आर" दबाकर रन खोलें; "cmd टाइप करें और ठीक पर क्लिक करें
रूट डायरेक्टरी में जाने के लिए कमांड "cd /" टाइप करें
चरण 3: दिए गए सेटअप काम कर रहा है या नहीं यह जांचने के लिए कमांड में टाइप करें
cmd / c C: \\ Wget \\ wget.exe -PC: - कोई चेक-प्रमाणपत्र http://demo.guru99.com/selenium/msgr11us.exe
ऐसा लगता है कि सी ड्राइव में एक मुद्दा है।
चरण 4: सेलेनियम वेबड्राइवर का उपयोग करके कोड निष्पादित करने से पहले आपको कमांड लाइन में wget त्रुटियों को डीबग करना होगा। ये त्रुटियां एक्लिप्स में बनी रहेंगी और त्रुटि संदेश सूचनात्मक नहीं होंगे। कमांड लाइन का उपयोग करके सबसे पहले wget काम कर रहा है। यदि यह कमांड लाइन में काम करता है तो यह निश्चित रूप से ग्रहण में काम करेगा।
हमारे उदाहरण में, जैसा कि चरण 3 में दिखाया गया है, सी ड्राइव में लिखने में समस्या है। आइए डाउनलोड स्थान को डी ड्राइव में बदलें और परिणाम जांचें।
cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
मैसेंजर को सफलतापूर्वक डाउनलोड किया गया था।
आगे बढ़ने से पहले आप डाउनलोड की गई फ़ाइल को हटाना न भूलें
WebDriver और Wget का उपयोग करना
निम्नलिखित उदाहरण में, हम WebDriver का उपयोग करेंगे और याहू मैसेंजर नामक एक लोकप्रिय चैट सॉफ्टवेयर को डाउनलोड करना भूल जाएंगे। हमारा आधार URL http://demo.guru99.com/test/yahoo.html होगा।
चरण 1
"Java.io.IOException" पैकेज को आयात करें क्योंकि हमें बाद में चरण 4 में एक IOException को पकड़ना होगा।
चरण 2
डाउनलोड लिंक के "href" मान को प्राप्त करने और इसे स्ट्रिंग वेरिएबल के रूप में सहेजने के लिए getAttribute () का उपयोग करें। इस मामले में, हमने चर को "सोर्सलोकेशन" नाम दिया है।
चरण 3
निम्नलिखित कमांड का उपयोग करके विंग के लिए सिंटैक्स सेट-अप करें।
चरण 4
हमारे वेबड्राइवर कोड से wget कॉल करके डाउनलोड प्रक्रिया आरंभ करें।
इसे पूरा करने के लिए, आपका वेबड्राइवर कोड नीचे दिखाए गए अक्षर की तरह लग सकता है।
पैकेज न्यूप्रोजेक्ट;आयात java.io.IOException;आयात org.openqa.selenium। *;आयात org.openqa.selenium.firefox.FirefoxDriver;पब्लिक क्लास PG8 {सार्वजनिक स्थैतिक शून्य main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");स्ट्रिंग आधार = "http://demo.guru99.com/test/yahoo.html";WebDriver ड्राइवर = नया FirefoxDriver ();Driver.get (baseUrl);WebElement डाउनलोडबटन = Driver.findElement (द्वारा.id ("मैसेंजर-डाउनलोड"));स्ट्रिंग स्त्रोत्रीकरण = downloadButton.getAttribute ("href");स्ट्रिंग wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;प्रयत्न {प्रक्रिया निष्पादन = Runtime.getRuntime ()। Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Exit value: + exitVal);} कैच (InterruptedException | IOException ex) {System.out.println (ex.toString ());}Driver.close ();}}
इस कोड को निष्पादित करने के बाद, अपने डी ड्राइव की जांच करें और सत्यापित करें कि याहू मैसेंजर इंस्टॉलर सफलतापूर्वक डाउनलोड किया गया था।
सारांश
- WebDriver में फ़ाइलें अपलोड करना फ़ाइल अपलोड करने के लिए पथ दर्ज करने के लिए फ़ाइल-चयन इनपुट फ़ील्ड पर sendKeys () पद्धति का उपयोग करके किया जाता है।
- WebDriver अपने दम पर फ़ाइलों के डाउनलोड को स्वचालित नहीं कर सकता है।
- WebDriver का उपयोग करके फ़ाइलों को डाउनलोड करने का सबसे आसान तरीका Wget का उपयोग करना है।