Monday, August 26, 2024

Steps to Configure Selenium

 

Steps to Configure Selenium:

Download Selenium:

1.     Go to Official Selenium Website:

2.     Download Selenium Java:

    • Scroll down to find Selenium Java section.
    • Click on "Stable: 4.20.0 (April 24, 2024)" or the latest version available.
    • Download the .zip file containing Selenium Java.

3.     Extract Selenium Java:

    • Once downloaded, right-click on the downloaded .zip file.
    • Select "Extract All" to unzip the contents into a folder named Selenium-java-4.20.0 (or the version you downloaded).

Add "Selenium Jar" files to Eclipse :

Right click on Project i.e "SeleniumMay52024" > Properties > Java build path > Libraries tab > click on 'class path' > click 'Add External jars' btn > Browse selenium jar files(C:\Users\Lenovo\Downloads\selenium-java-4.4.0 (2))

>   select all jar file (press control + A) and also add  jar files from Lib folder also (C:\Users\Lenovo\Downloads\selenium-java-4.4.0 (2)\lib)

>  After adding jar files >  created 'Referenced Libraries' folder in Project >  Expand this folder- we can see all jar files what we added

      (or )

Other way to download "Single Selenium-server" jar file:

Go to Downloads selenium official website- > Scroll down to 'Selenium Server (Grid)' section > click on 'Latest stable version 4.20.0' > it downloads 'selenium-server-4.20.0jar' file in our system.

Add 'Selenium-server4.12.1.jar'  file  to Eclipse Project :  Same above steps to add /jar file to eclipse Project

Download  "Driver executable" files for each browser:

Chrome -->  chromedriver.exe

Edge --> EdgeDriver.exe

IE -->  InternetExplorerdriver.exe

Firefox --> geckodriver.exe

Chrome:

  • ChromeDriver:
    • Download from ChromeDriver Official Site.
    • Select the version that matches your Chrome browser version.
    • Download chromedriver.exe for Windows or the respective executable for your operating system.

·        https://chromedriver.chromium.org/downloads

·        Current Releases

·        If you are using Chrome version 110, we should download ChromeDriver 110.0.5481.30.exe

·        If you are using Chrome version 109, we should download ChromeDriver 109.0.5414.74.exe

·                                        124,                                  124

·        https://chromedriver.storage.googleapis.com/index.html?path=109.0.5414.74/

·        Latest chromedriver 124 :

·        chromedriver  win32  https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.91/win32/chromedriver-win32.zip         200

·        chromedriver  win64  https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.91/win64/chromedriver-win64.zip         200

·        Click chromedriver_win32.zip >  download chromedriver_win32 (.zip) --> unzip folder > can see 'chromedriver.exe

Edge:

  • EdgeDriver:

o   Download from Microsoft Edge WebDriver.

o   Select the appropriate version for your Edge browser.

o   Download msedgedriver.exe for Windows or the respective executable for your operating system.

Download 'Edgedriver.exe":

Check "Edge browser" version :  124.0

 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Download respective version of edge driver.exe file  i.e 124.0

Internet Explorer (IE):

  • InternetExplorerDriver:
    • Download from Selenium IE Driver.
    • Scroll down to find the version compatible with your IE browser.
    • Download IEDriverServer.exe for Windows or the respective executable for your operating system.

Firefox:

  • GeckoDriver:
    • Download from Mozilla GeckoDriver.
    • Select the version that matches your Firefox browser version.
    • Download geckodriver.exe for Windows or the respective executable for your operating system.

HW  :  download Geckodriver.exe, InternetExplorerdriver.exe

Important Classes in Selenium:

Selenium 4.7.2 .Jar  -->  contains Predefined Packages >  Classes  + Interfaces

                                                                               >   contains predefined methods

Browser      Classes

----------------------------------

chrome -->  ChromeDriver     (C) is predefined class in Selenium

Edge --> EdgeDriver                                        - class in ..

FF --> FirefoxDriver                                          -class

IE -->  InternetExplorerDriver                        - Class

Safari --> SafariDriver                          - class

ChromeDriver: Used to automate Google Chrome browser

EdgeDriver: Used to automate Microsoft Edge browser

FirefoxDriver: Used to automate Mozilla Firefox browser.

InternetExplorerDriver: Used to automate Internet Explorer browser.

SafariDriver: Used to automate Safari browser (primarily on macOS).

Handling Chrome, Edge , firefox , IE  Browser:

package SeleniumBasics1;

import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeBrowerBasics1

{

            public static void main(String[] args) {

                        // open chrome browser

                        //  2 steps

                        //1 . Set property -chromerdriver.exe file path

                        //2.  create obj for 'ChromeDriver' class

                        //System.setProperty("webdriver.chrome.driver", " path of chromedriver .exe ");

                        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Lenovo\\Downloads\\chromedriver-win64 (1)\\chromedriver-win64\\chromedriver.exe");

                        //open chrome browser -create obj for "ChromeDriver" class

                        //  syntax : class objref =  new class();

                        ChromeDriver driver = new ChromeDriver();// opens chrome browser

            }

}

                       

                       

Open "edge" browser:

// Open Edge browser code:

// https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

package SeleniumBasics1;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.edge.EdgeDriver;

public class EdgeBrowerBasics1

{

            public static void main(String[] args) {

                        // open chrome browser

                        //  2 steps

                        //1 . Set property -chromerdriver.exe file path --->  EdgeDriver.exe

                        //2.  create obj for 'ChromeDriver' class     ---> EdgeDriver- class

                        //System.setProperty("webdriver.chrome.driver", " path of EdgeDriver .exe ");

//                     System.setProperty("webdriver.edge.driver", "C:\\Users\\Lenovo\\Downloads\\edgedriver_win64\\edgedriver.exe");

                        // Always give exact driver executable file name

                       

//                     Exception in thread "main" org.openqa.selenium.remote.NoSuchDriverException: Unable to obtain: msedgedriver, error msedgedriver must exist: C:\Users\Lenovo\Downloads\edgedriver_win64\edgedriver.exe

//                     For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/

//                     Build info: version: '4.20.0', revision: '866c76ca80'

//                     System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '15.0.2'

//                     Driver info: driver.version: EdgeDriver

//                                 at org.openqa.selenium.remote.service.DriverFinder.getBinaryPaths(DriverFinder.java:121)

//                                 at org.openqa.selenium.remote.service.DriverFinder.getDriverPath(DriverFinder.java:55)

//                                 at org.openqa.selenium.edge.EdgeDriver.generateExecutor(EdgeDriver.java:71)

//                                 at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:60)

//                                 at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:56)

//                                 at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:48)

//                                 at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:44)

//                                 at SeleniumBasics1.EdgeBrowerBasics1.main(EdgeBrowerBasics1.java:24)

//                     Caused by: java.lang.IllegalStateException: msedgedriver must exist: C:\Users\Lenovo\Downloads\edgedriver_win64\edgedriver.exe

//                                 at org.openqa.selenium.internal.Require$FileStateChecker.isFile(Require.java:346)

//                                 at org.openqa.selenium.internal.Require$FileStateChecker.isExecutable(Require.java:368)

//                                 at org.openqa.selenium.remote.service.DriverFinder.getBinaryPaths(DriverFinder.java:118)

//                                 ... 7 more

                        System.setProperty("webdriver.edge.driver", "C:\\Users\\Lenovo\\Downloads\\edgedriver_win64\\msedgedriver.exe");

                       

                       

                        //open chrome browser -create obj for "ChromeDriver" class

                        //  syntax : class objref =  new class();

//                     ChromeDriver driver = new ChromeDriver();// opens chrome browser

                        // Open Edge browser

                        EdgeDriver driver = new EdgeDriver();

            }

}

                                               

// HW WAP to  Open firefox browser

                       

// HW WAP to open IE browser

                       

Relative Path for Driver Executable Files:

Chrome :

  1. Create a "Drivers" Folder in Your Project:
    • Right-click on your project in Eclipse (or your IDE).
    • Select New > Folder.
    • Enter the folder name as Drivers.
    • Click Finish to create the Drivers folder in your project directory.
  1. Copy Driver Executables to the "Drivers" Folder:

·        Locate the chromedriver.exe and msedgedriver.exe files on your system.

·        Copy these files.

·        Paste them into the Drivers folder you created within your project directory

ProjectName/

── src/

└── Drivers/

    ── chromedriver.exe

    └── msedgedriver.exe

Using relative paths helps in keeping your project organized and makes it easier to share or deploy without hardcoding absolute paths, which are system-dependent and less flexible

code:

package SeleniumBasics1;

import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeBrowerBasics1

{

            public static void main(String[] args) {

                        // open chrome browser

                        //  2 steps

                        //1 . Set property -chromerdriver.exe file path

                        //2.  create obj for 'ChromeDriver' class

                        //System.setProperty("webdriver.chrome.driver", " path of chromedriver .exe ");

                        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Lenovo\\Downloads\\chromedriver-win64 (1)\\chromedriver-win64\\chromedriver.exe");

           

                        // give relative path of driver.exe

                       

                        System.setProperty("webdriver.chrome.driver", ".\\Drivers\\chromedriver.exe");

                        //  . refers current Project folder

                        //open chrome browser -create obj for "ChromeDriver" class

                        //  syntax : class objref =  new class();

//                     ChromeDriver driver = new ChromeDriver();// opens chrome browser

                       

                       

                        new ChromeDriver();  // opens chrome browser

                        // FAQ Walmart.   "Does new ChromeDriver(); create an object or not?"                        //  yes.  it creates object        

            }

}

-----------------------------

Edge:

package SeleniumBasics1;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.edge.EdgeDriver;

public class EdgeBrowerBasics1

{

            public static void main(String[] args) {

                        // open chrome browser

                        //  2 steps

                        //1 . Set property -chromerdriver.exe file path --->  EdgeDriver.exe

                        //2.  create obj for 'ChromeDriver' class     ---> EdgeDriver- class

                        //System.setProperty("webdriver.chrome.driver", " path of EdgeDriver .exe ");

//                     System.setProperty("webdriver.edge.driver", "C:\\Users\\Lenovo\\Downloads\\edgedriver_win64\\edgedriver.exe");

                        // Always give exact driver executable file name

                       

//                     System.setProperty("webdriver.edge.driver", "C:\\Users\\Lenovo\\Downloads\\edgedriver_win64\\msedgedriver.exe");

                        //  give relative path of edgedriver.exe

                        System.setProperty("webdriver.edge.driver", ".\\Drivers\\msedgedriver.exe");

                       

                       

                        //open chrome browser -create obj for "ChromeDriver" class

                        //  syntax : class objref =  new class();

//                     ChromeDriver driver = new ChromeDriver();// opens chrome browser

                        // Open Edge browser

                        EdgeDriver driver = new EdgeDriver();

            }

}

//Note:

 

In Selenium WebDriver, particularly when working with browser drivers such as ChromeDriver, EdgeDriver, FirefoxDriver, etc., specifying the correct path and filename for the driver executable is crucial. Here’s why an IllegalStateException might occur if the file path or name is incorrect:

HW :  open firefox as same as above - using relative path

Download geckodriver.exe from below path

https://github.com/mozilla/geckodriver/releases

No comments:

Post a Comment

git commands MCQ

 Here are some multiple-choice questions (MCQs) on Git commands relevant for Selenium: 1. Which Git command is used to clone a remote reposi...