selenium
जावा के साथ सेलेनियम में पहली परियोजना
खोज…
परिचय
यह जावा का उपयोग करते हुए सेलेनियम का एक परिचय है। जबकि हम आपको सेलेनियम के बारे में कुछ भी जानने की उम्मीद नहीं करते हैं, आपको इस पाठ्यक्रम का पालन करने के लिए पूर्व जावा ज्ञान होना चाहिए।
लिंक डाउनलोड करें :
सेलेनियम के लिए इंटेलीज आइडिया की स्थापना
आवश्यक शर्तें:
- जावा स्थापित है
- सेलेनियम एक फ़ोल्डर में निकाला जाता है (2 फ़ाइलें और 1 फ़ोल्डर होता है)
सेलेनियम के लिए इंटेलीज आइडिया स्थापित करने के लिए इन चरणों का पालन करें।
- "नई परियोजना" पर क्लिक करें।
- जावा <"हैलो वर्ल्ड" एप्लिकेशन चुनें
- प्रोजेक्ट का नाम टाइप करें, और इसे बनाएं।
आपकी स्क्रीन कुछ इस तरह दिखनी चाहिए
अब, करने के लिए जाओ
File < Project Structure < Modules < Dependencies
वहां, ग्रीन प्लस ( +
) आइकन पर क्लिक करें, और लाइब्रेरी चुनें। फिर निकाले गए सेलेनियम फ़ोल्डर में नेविगेट करें, और " सेलेनियम-जावा 2.4.0.jar " जोड़ें। इसे जोड़ने के बाद, हरे रंग के प्लस ( +
) आइकन पर फिर से क्लिक करें, और अब "निर्देशिका" चुनें। इस बार, सेलेनियम की फ़ोल्डर libs का पता लगाने, और, ठीक है पर क्लिक करें, जबकि यह का चयन।
अंत में, आपकी परियोजना संरचना इस तरह दिखनी चाहिए
अब, OK पर क्लिक करें, और आप सभी सेट हो गए हैं।
ChromeDriver सेट करना
आवश्यकताएँ: क्रोमड्राइवर डाउनलोड किया गया है
निम्नलिखित कोड को अपनी कक्षा में कॉपी करें।
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
}
यदि आप लिनक्स का उपयोग कर रहे हैं, तो क्रोमड्राइवर बाइनरी को रास्ता दें।
सेलेनियम का उपयोग करके एक वेबसाइट खोलना
किसी वेबसाइट पर जाने के लिए हम मेथड मेथड का उपयोग करते get
। उदाहरण के लिए, यह Google खोल देगा
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:www.google.com");
Thread.sleep(3000); //wait for 3 seconds
driver.quit(); //close Chrome
}
driver.quit()
ब्राउज़र को बंद करता है। एक देरी बनाने के लिए, हम Thread.sleep(3000)
। Thread.sleep(3000)
उपयोग करते हैं।
सेलेनियम में तत्व प्राप्त करना
सेलेनियम में प्रत्येक एचटीएमएल-एलिमेंट को एक WebElement
कहा जाता है। उदाहरण के लिए, एक p
टैग एक WebElement
, a
टैग एक WebElement
, आदि निम्नलिखित HTML संरचना पर विचार करें:
<a id="link1" href="https://www.google.com">google</a>
<p class="p1">
This is a paragraph
</p>
अब, अगर हम a
टैग प्राप्त करना चाहते थे, तो हम कर सकते थे
WebElement link = driver.findElement(By.id("link1"));
अब, हम इस पर क्लिक कर सकते हैं
link.click();
एक और उदाहरण लेते हैं। यदि हम p
टैग का पाठ चाहते हैं, अर्थात , " यह एक पैराग्राफ है ", हम कर सकते हैं
WebElement p = driver.findElement(By.className("p1"));
System.out.println(p.getText());
हम तत्वों को टैग द्वारा भी प्राप्त कर सकते हैं, जैसे
WebElement tag = driver.findElement(By.tagName("a"));
सेलेनियम में काम करने का उदाहरण
अब जब हम सेलेनियम की मूल बातें जानते हैं, तो हम अपना प्रोजेक्ट बना सकते हैं। इस उदाहरण के लिए, हम एक कार्यक्रम बना रहे हैं, जो स्टैक-ओवरफ्लो पर नवीनतम प्रश्नों का पता लगाता है।
हम आसान शुरुआत करते हैं, स्टैक-ओवरफ्लो को खोलने देते हैं।
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:stackoverflow.com");
Thread.sleep(3000);
driver.quit();
}
अब, यदि आप पृष्ठ के स्रोत को देखते हैं, तो आप पाते हैं कि सभी प्रश्न, a
टैग हैं, जिसमें क्लास question-hyperlink
नेम question-hyperlink
। हालाँकि, चूंकि कई प्रश्न हैं, इसलिए हम WebElement
के बजाय WebElement
List
का उपयोग WebElement
। इस प्रकार, हम कर सकते हैं
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:stackoverflow.com");
List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
}
अब, हमें a
टैग की href
विशेषता प्राप्त करने की आवश्यकता है, जिसमें प्रश्न का लिंक है। ऐसा करने के लिए, हम प्रत्येक WebElement
पर getAttribute("href")
उपयोग कर सकते हैं, जैसे
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https:stackoverflow.com");
List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
System.out.println(list.size());
list.forEach(e->System.out.println(e.getAttribute("href")));
driver.quit();
}
यह स्टैक-ओवरफ्लो पर शीर्ष-प्रश्नों के लिंक को प्रिंट करता है।
सेलेनियम में वैबसाइट्स के गुण प्राप्त करना
किसी WebElement
की विशेषता प्राप्त करने के लिए, हम उस WebElement
पर getAttribute
उपयोग WebElement
। उदाहरण के लिए, निम्नलिखित HTML टैग पर विचार करें
<a id="click" href="https://www.google.com">
हम तत्व की href
विशेषता द्वारा पा सकते हैं
WebElement e = driver.findElement(By.id("click"));
System.out.println(e.getAttribute("href")); //prints https://www.google.com