selenium-webdriver
बेसिक सेलेनियम वेबड्राइवर प्रोग्राम
खोज…
परिचय
इस विषय का उद्देश्य सेलेनियम समर्थित भाषाओं जैसे C #, Groovy, Java, Perl, PHP, Python और Ruby में बेसिक वेब ड्राइवर प्रोग्राम को दिखाना है।
यात्रा में ब्राउज़र ड्राइवर खोलना शामिल है -> Google पृष्ठ -> ब्राउज़र बंद करना
सी#
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace BasicWebdriver
{
class WebDriverTest
{
static void Main()
{
using (var driver = new ChromeDriver())
{
driver.Navigate().GoToUrl("http://www.google.com");
}
}
}
}
उपरोक्त 'प्रोग्राम' Google होमपेज पर नेविगेट करेगा, और पृष्ठ को पूरी तरह से लोड करने के बाद ब्राउज़र को बंद कर देगा।
using (var driver = new ChromeDriver())
यह IWebdriver
इंटरफ़ेस का उपयोग करके एक नई WebDriver ऑब्जेक्ट को IWebdriver
करता है और एक नया ब्राउज़र विंडो उदाहरण बनाता है। इस उदाहरण में हम ChromeDriver
का उपयोग कर रहे हैं (हालाँकि यह जो भी ब्राउज़र हम उपयोग करना चाहते थे उसके लिए उपयुक्त ड्राइवर द्वारा प्रतिस्थापित किया जा सकता है)। हम एक साथ इस लपेटकर कर रहे हैं using
बयान, क्योंकि IWebDriver
औजार IDisposable
, इस प्रकार स्पष्ट रूप से करने की जरूरत नहीं में टाइप driver.Quit();
।
यदि आपने NuGet का उपयोग करके अपने WebDriver को डाउनलोड नहीं किया है, तो आपको निर्देशिका के लिए एक पथ के रूप में एक तर्क पास करना होगा जहां ड्राइवर खुद "chromedriver.exe" स्थित है।
नेविगेट
driver.Navigate().GoToUrl("http://www.google.com");
तथा
driver.Url = "http://www.google.com";
ये दोनों रेखाएँ एक ही काम करती हैं। वे ड्राइवर को एक विशिष्ट URL पर नेविगेट करने और पृष्ठ को तब तक इंतजार करने का निर्देश देते हैं जब तक कि वह अगले बयान पर जाने से पहले पृष्ठ लोड न हो जाए।
नेविगेशन से जुड़ी अन्य विधियां जैसे Back()
, Forward()
या Refresh()
।
उसके बाद, using
ब्लॉक सुरक्षित रूप से क्विट करता है, और ऑब्जेक्ट को डिस्पोज़ करता है।
अजगर
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
def set_up_driver():
path_to_chrome_driver = 'chromedriver'
return webdriver.Chrome(executable_path=path_to_chrome_driver)
def get_google():
driver = set_up_driver()
driver.get('http://www.google.com')
tear_down(driver)
def tear_down(driver):
driver.quit()
if '__main__' == __name__:
get_google()
उपरोक्त 'प्रोग्राम' Google होमपेज पर नेविगेट करेगा, और पूरा होने से पहले ब्राउज़र को बंद कर देगा।
if '__main__' == __name__:
get_google()
सबसे पहले हमारे पास हमारा मुख्य कार्य है, कार्यक्रम में प्रवेश करने की हमारी बात, जिसे get_google()
।
def get_google():
driver = set_up_driver()
get_google()
तो हमारे बनाकर शुरू होता है driver
के माध्यम से उदाहरण set_up_driver()
:
def set_up_driver():
path_to_chrome_driver = 'chromedriver'
return webdriver.Chrome(executable_path=path_to_chrome_driver)
जिससे हम कहते हैं कि जहां chromedriver.exe
स्थित है, और इस पथ के साथ हमारे ड्राइवर ऑब्जेक्ट को तत्काल। get_google()
का शेष भाग get_google()
Google को नेविगेट करता है:
driver.get('http://www.google.com')
और उसके बाद ड्राइवर ऑब्जेक्ट पास करने के लिए tear_down()
कॉल करें:
tear_down(driver)
tear_down()
में हमारे ड्राइवर ऑब्जेक्ट को बंद करने के लिए बस एक पंक्ति शामिल है:
driver.quit()
यह ड्राइवर को सभी खुली ब्राउज़र विंडो बंद करने और ब्राउज़र ऑब्जेक्ट को डिस्पोज़ करने के लिए कहता है, क्योंकि इस कॉल को प्रभावी रूप से समाप्त करने के बाद हमारे पास कोई अन्य कोड नहीं है।
जावा
नीचे दिए गए कोड में लगभग 3 चरण हैं।
- क्रोम ब्राउज़र खोलना
- गूगल पेज खुल रहा है
- ब्राउज़र को बंद करें
import org.openqa.selenium;
import org.openqa.selenium.chrome;
public class WebDriverTest {
public static void main(String args[]) {
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
driver.quit();
}
}
उपरोक्त 'प्रोग्राम' Google होमपेज पर नेविगेट करेगा, और पूरा होने से पहले ब्राउज़र को बंद कर देगा।
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
पहली पंक्ति उस सिस्टम को बताती है, जहां ChromeDriver
(chromedriver.exe) निष्पादन योग्य है। हम तब ChromeDriver()
कंस्ट्रक्टर को कॉल करके अपना ड्राइवर ऑब्जेक्ट बनाते हैं, फिर से हम अपने कंस्ट्रक्टर को यहां किसी भी ब्राउज़र / प्लेटफॉर्म के लिए कॉल कर सकते हैं।
driver.get("http://www.google.com");
यह हमारे ड्राइवर को निर्दिष्ट url: http://www.google.com पर नेविगेट करने के लिए कहता है। जावा वेबड्राइवर एपीआई सीधे वेबड्राइवर इंटरफेस पर get()
विधि प्रदान करता है, हालांकि आगे नेविगेशन तरीकों को navigate()
विधि, उदाहरण के लिए driver.navigate.back()
माध्यम से पाया जा सकता है।
एक बार पृष्ठ लोड होने के बाद हम तुरंत कॉल करते हैं:
driver.quit();
यह ड्राइवर को सभी खुली ब्राउज़र विंडो बंद करने और ड्राइवर ऑब्जेक्ट को डिस्पोज करने के लिए कहता है, क्योंकि इस कॉल के बाद हमारे पास कोई अन्य कोड नहीं है जो इस कार्यक्रम को प्रभावी ढंग से समाप्त करता है।
driver.close();
ड्राइवर को केवल सक्रिय विंडो बंद करने के लिए एक निर्देश (यहां नहीं दिखाया गया है), इस उदाहरण में, क्योंकि हमारे पास केवल एक ही खिड़की है, निर्देश कॉल quit()
समान परिणामों का कारण होगा quit()
।
जावा - पेज कक्षाओं के साथ सबसे अच्छा अभ्यास
Usecase: FB खाते में लॉगिन करें
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class FaceBookLoginTest {
private static WebDriver driver;
HomePage homePage;
LoginPage loginPage;
@BeforeClass
public void openFBPage(){
driver = new FirefoxDriver();
driver.get("https://www.facebook.com/");
loginPage = new LoginPage(driver);
}
@Test
public void loginToFB(){
loginPage.enterUserName("username");
loginPage.enterPassword("password");
homePage = loginPage.clickLogin();
System.out.println(homePage.getUserName());
}
}
पेज कक्षाएं: लॉग इन पेज और होम पेज लॉगिन पेज क्लास:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class LoginPage {
WebDriver driver;
public LoginPage(WebDriver driver){
this.driver = driver;
}
@FindBy(id="email")
private WebElement loginTextBox;
@FindBy(id="pass")
private WebElement passwordTextBox;
@FindBy(xpath = ".//input[@data-testid='royal_login_button']")
private WebElement loginBtn;
public void enterUserName(String userName){
if(loginTextBox.isDisplayed()) {
loginTextBox.clear();
loginTextBox.sendKeys(userName);
}
else{
System.out.println("Element is not loaded");
}
}
public void enterPassword(String password){
if(passwordTextBox.isDisplayed()) {
passwordTextBox.clear();
passwordTextBox.sendKeys(password);
}
else{
System.out.println("Element is not loaded");
}
}
public HomePage clickLogin(){
if(loginBtn.isDisplayed()) {
loginBtn.click();
}
return new HomePage(driver);
}
}
होम पेज क्लास:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class HomePage {
WebDriver driver;
public HomePage(WebDriver driver){
this.driver = driver;
}
@FindBy(xpath=".//a[@data-testid='blue_bar_profile_link']/span")
private WebElement userName;
public String getUserName(){
if(userName.isDisplayed()) {
return userName.getText();
}
else {
return "Username is not present";
}
}
}