का उपयोग करके फ़ाइल अपलोड और डाउनलोड कैसे करें Selenium वेबड्राइवर
सेलेनियम में फ़ाइल अपलोड करें
वेबड्राइवर में फ़ाइलों को अपलोड करने के लिए फ़ाइल-चयन इनपुट फ़ील्ड पर sendKeys() विधि का उपयोग करके अपलोड की जाने वाली फ़ाइल का पथ दर्ज किया जाता है।
इस ट्यूटोरियल में हम सीखेंगे कि फ़ाइल अपलोड और डाउनलोड से कैसे निपटें।
फ़ाइल अपलोड कैसे करें Selenium
इस अनुभाग के लिए, हम उपयोग करेंगे https://demo.guru99.com/test/upload/ हमारे परीक्षण आवेदन के रूप में। यह साइट किसी भी आगंतुक को साइन अप करने की आवश्यकता के बिना आसानी से फ़ाइलें अपलोड करने की अनुमति देती है।
मान लीजिए कि हम “C:\newhtml.html” फ़ाइल अपलोड करना चाहते हैं। हमारा वेबड्राइवर कोड नीचे दिखाए गए कोड जैसा होना चाहिए।
package newproject; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; public class PG9 { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); String baseUrl = "https://demo.guru99.com/test/upload/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement uploadElement = driver.findElement(By.id("uploadfile_0")); // enter the file path onto the file-selection input field uploadElement.sendKeys("C:\\newhtml.html"); // check the "I accept the terms of service" check box driver.findElement(By.id("terms")).click(); // click the "UploadFile" button driver.findElement(By.name("send")).click(); } }
इस स्क्रिप्ट को चलाने के बाद, आप फ़ाइल को सफलतापूर्वक अपलोड करने में सक्षम हो जाएंगे और आपको कुछ इस तरह का संदेश प्राप्त होगा।
वेबड्राइवर में फ़ाइलें अपलोड करते समय निम्नलिखित दो बातें याद रखें
- “ब्राउज़” बटन पर क्लिक करने की नकल करने की कोई ज़रूरत नहीं है। वेबड्राइवर स्वचालित रूप से फ़ाइल पथ को फ़ाइल-चयन टेक्स्ट बॉक्स में दर्ज करता है तत्व
- अपने फ़ाइल पथ को सेट करते समय Java IDE में, बैक-स्लैश के लिए उचित एस्केप कैरेक्टर का उपयोग करें।
किसी फ़ाइल को कैसे डाउनलोड करें? Selenium वेबड्राइवर
वेबड्राइवर में डाउनलोड संवाद बॉक्स तक पहुंचने की कोई क्षमता नहीं है जब आप किसी डाउनलोड लिंक या बटन पर क्लिक करते हैं तो ब्राउज़र द्वारा प्रस्तुत किए जाते हैं। हालाँकि, हम "wget" नामक एक अलग प्रोग्राम का उपयोग करके इन डायलॉग बॉक्स को बायपास कर सकते हैं।
Wget क्या है?
Wget एक छोटा और उपयोग में आसान कमांड-लाइन प्रोग्राम है जिसका उपयोग डाउनलोड को स्वचालित करने के लिए किया जाता हैमूलतः, हम डाउनलोड प्रक्रिया करने के लिए अपने वेबड्राइवर स्क्रिप्ट से Wget तक पहुंचेंगे।
Wget की स्थापना
चरण 1) अपने C ड्राइव में एक नया फ़ोल्डर बनाएं और उसका नाम “Wget” रखें।
wget.exe डाउनलोड करें यहाँ से और इसे ऊपर दिए गए चरण में आपके द्वारा बनाए गए Wget फ़ोल्डर में रखें।
चरण 2) विंडोज़ कुंजी + “R” दबाकर रन खोलें; “cmd” टाइप करें और ओके पर क्लिक करें
रूट डायरेक्टरी में जाने के लिए “cd /” कमांड टाइप करें
चरण 3) यह जाँचने के लिए कि दिया गया सेटअप काम कर रहा है या नहीं, कमांड टाइप करें
cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
ऐसा लगता है कि C ड्राइव में लिखने में कोई समस्या है।
चरण 4) कोड को निष्पादित करने से पहले आपको कमांड लाइन में wget त्रुटियों को डीबग करना होगा Selenium वेबड्राइवर. ये त्रुटियाँ बनी रहेंगी Eclipse और त्रुटि संदेश उतने जानकारीपूर्ण नहीं होंगे। सबसे पहले wget को कमांड लाइन का उपयोग करके काम करना शुरू करना सबसे अच्छा है। यदि यह कमांड लाइन में काम करता है तो यह निश्चित रूप से काम करेगा Eclipse.
हमारे उदाहरण में, जैसा कि चरण 3 में दिखाया गया है, C ड्राइव में लिखने में समस्या है। आइए डाउनलोड स्थान को D ड्राइव में बदलें और परिणाम देखें।
cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
Messenger सफलतापूर्वक डाउनलोड किया गया.
आगे बढ़ने से पहले डाउनलोड की गई फ़ाइल को हटाना न भूलें
WebDriver और Wget का उपयोग करना
निम्नलिखित उदाहरण में, हम याहू नामक एक लोकप्रिय चैट सॉफ्टवेयर को डाउनलोड करने के लिए वेबड्राइवर और wget का उपयोग करेंगे Messenger. हमारा आधार यूआरएल होगा https://demo.guru99.com/test/yahoo.html.
चरण 1) “java.io.IOException” पैकेज को आयात करें क्योंकि हमें चरण 4 में बाद में IOException को पकड़ना होगा।
चरण 2) डाउनलोड लिंक का “href” मान प्राप्त करने के लिए getAttribute() का उपयोग करें और इसे स्ट्रिंग वैरिएबल के रूप में सेव करें। इस मामले में, हमने वैरिएबल को “sourceLocation” नाम दिया है।
चरण 3) निम्नलिखित कमांड का उपयोग करके wget के लिए सिंटैक्स सेट करें।
चरण 4) हमारे वेबड्राइवर कोड से wget को कॉल करके डाउनलोड प्रक्रिया आरंभ करें।
संक्षेप में, आपका वेबड्राइवर कोड नीचे दिखाए गए कोड जैसा दिख सकता है।
package newproject; import java.io.IOException; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; public class PG8 { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); String baseUrl = "https://demo.guru99.com/test/yahoo.html"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement downloadButton = driver.findElement(By .id("messenger-download")); String sourceLocation = downloadButton.getAttribute("href"); String wget_command = "cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate " + sourceLocation; try { Process exec = Runtime.getRuntime().exec(wget_command); int exitVal = exec.waitFor(); System.out.println("Exit value: " + exitVal); } catch (InterruptedException | IOException ex) { System.out.println(ex.toString()); } driver.close(); } }
इस कोड को निष्पादित करने के बाद, अपने डी ड्राइव की जांच करें और सत्यापित करें कि याहू Messenger इंस्टॉलर सफलतापूर्वक वहां डाउनलोड किया गया था।
सारांश
- वेबड्राइवर में फ़ाइलों को अपलोड करने के लिए फ़ाइल-चयन इनपुट फ़ील्ड पर sendKeys() विधि का उपयोग करके अपलोड की जाने वाली फ़ाइल का पथ दर्ज किया जाता है।
- वेबड्राइवर स्वयं फ़ाइलों के डाउनलोड को स्वचालित नहीं कर सकता।
- वेबड्राइवर का उपयोग करके फ़ाइलें डाउनलोड करने का सबसे आसान तरीका Wget का उपयोग करना है।