<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Deepikandas</title>
    <description>The latest articles on DEV Community by Deepikandas (@deepikandas).</description>
    <link>https://dev.to/deepikandas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3777882%2Fe8a9c053-d1b0-457f-825d-05b59bd8118f.png</url>
      <title>DEV Community: Deepikandas</title>
      <link>https://dev.to/deepikandas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deepikandas"/>
    <language>en</language>
    <item>
      <title>Handling Check Boxes in Selenium</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sat, 30 May 2026 22:33:47 +0000</pubDate>
      <link>https://dev.to/deepikandas/handling-check-boxes-in-selenium-4gnb</link>
      <guid>https://dev.to/deepikandas/handling-check-boxes-in-selenium-4gnb</guid>
      <description>&lt;p&gt;&lt;strong&gt;CheckBox:&lt;/strong&gt;&lt;br&gt;
The checkbox is a GUI element that allows users to select either single or multiple choices out of the given list.&lt;br&gt;
&lt;strong&gt;How to recognize checkbox in HTML?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We can define a checkbox in HTML using 
input type="checkbox" tag.&lt;/li&gt;
&lt;li&gt;Any locator strategy  that uses DOM for locating web elements should use this tag and properties for recognizing the checkbox.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Locating checkbox by id:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.util.List&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.By&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.WebDriver&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.WebElement&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.chrome.ChromeDriver&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CheckBox&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;WebDriver&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ChromeDriver&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// finding element by id&lt;/span&gt;
        &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"https://testautomationpractice.blogspot.com/?utm_source=chatgpt.com"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;findElement&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;By&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"sunday"&lt;/span&gt;&lt;span class="o"&gt;)).&lt;/span&gt;&lt;span class="na"&gt;click&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="n"&gt;tuesdayCheckbox&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;findElement&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;By&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"tuesday"&lt;/span&gt;&lt;span class="o"&gt;)).&lt;/span&gt;&lt;span class="na"&gt;isSelected&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;findElement&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;By&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"monday"&lt;/span&gt;&lt;span class="o"&gt;)).&lt;/span&gt;&lt;span class="na"&gt;click&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tuesdayCheckbox&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;"Tuesday check box not selected"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
                &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpk5wknzkxx334rhqua1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpk5wknzkxx334rhqua1.png" alt=" " width="648" height="506"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;LOCATE USING CSSSELECTOR AND SELECTING ALL CHECKBOXES USING FINDELEMENTS() METHOD:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.util.List&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.By&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.WebDriver&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.WebElement&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.openqa.selenium.chrome.ChromeDriver&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CheckBox_css&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;WebDriver&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ChromeDriver&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"https://testautomationpractice.blogspot.com/?utm_source=chatgpt.com"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="nc"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;WebElement&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;allCheckBoxes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;findElements&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;By&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;cssSelector&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"input.form-check-input[type='checkbox']"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;allCheckBoxes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;WebElement&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;allCheckBoxes&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getAttribute&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"value"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(!&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isSelected&lt;/span&gt;&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;click&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
            &lt;span class="o"&gt;}&lt;/span&gt;

        &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmx591guskbccrbjsow10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmx591guskbccrbjsow10.png" alt=" " width="537" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LOCATE CHECKBOX USING XPATH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Checkbox_xpath {

    public static void main(String[] args) {
        WebDriver ch = new ChromeDriver(); // finding element by id
        ch.get("https://testautomationpractice.blogspot.com/?utm_source=chatgpt.com");
        List&amp;lt;WebElement&amp;gt; allCheckBoxes = ch
                .findElements(By.xpath("//input[@class='form-check-input' and @type='checkbox']"));
        System.out.println(allCheckBoxes.size());
        for (WebElement value : allCheckBoxes) {
            System.out.println(value.getAttribute("value"));
            if (!value.isSelected()) {
                System.out.println("not selected");
                value.click();
            }

        }

    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SELECTING ONLY PARTICULAR CHECKBOXES USING ARRAY&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Checkbox_slectedValuesArray {
    public static void main(String[] args) {
        WebDriver ch = new ChromeDriver();
        ch.get("https://testautomationpractice.blogspot.com/?utm_source=chatgpt.com");
        String toSelectid[] = { "sunday", "monday", "wednesday", "friday" };
        for (String id : toSelectid) {
            System.out.println(id);
            if (!ch.findElement(By.id(id)).isSelected())
                ch.findElement(By.id(id)).click();
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3w3q2x5yym3wfsi4c38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3w3q2x5yym3wfsi4c38.png" alt=" " width="541" height="137"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SELECTING ONLY PARTICULAR CHECKBOXES USING ARRAY AND FINDELEMENTS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Checkbox_xpath {

    public static void main(String[] args) {
        WebDriver ch = new ChromeDriver(); 
        String toSelectid[] = { "sunday", "monday", "wednesday", "friday" };
        ch.get("https://testautomationpractice.blogspot.com/?utm_source=chatgpt.com");
        List&amp;lt;WebElement&amp;gt; allCheckBoxes = ch
                .findElements(By.xpath("//input[@class='form-check-input' and @type='checkbox']"));
        System.out.println(allCheckBoxes.size());
        for (WebElement value : allCheckBoxes) {
            System.out.println(value.getAttribute("id"));
            for(int i=0;i&amp;lt;toSelectid.length;i++) {
            if (!value.isSelected()&amp;amp;&amp;amp; value.getAttribute("id").equals(toSelectid[i])) {
                System.out.println("not selected");
                value.click();
            }

        }

    }
}
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>automation</category>
      <category>java</category>
      <category>testing</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Types of Locators in Selenium -Part 2</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sat, 30 May 2026 22:33:20 +0000</pubDate>
      <link>https://dev.to/deepikandas/types-of-locators-in-selenium-part-2-631</link>
      <guid>https://dev.to/deepikandas/types-of-locators-in-selenium-part-2-631</guid>
      <description></description>
    </item>
    <item>
      <title>Types of Locators in selenium part1</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sat, 30 May 2026 22:33:04 +0000</pubDate>
      <link>https://dev.to/deepikandas/types-of-locators-in-selenium-part1-47ml</link>
      <guid>https://dev.to/deepikandas/types-of-locators-in-selenium-part1-47ml</guid>
      <description></description>
    </item>
    <item>
      <title>Finding WebElements and WebElement commands</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Thu, 28 May 2026 11:03:27 +0000</pubDate>
      <link>https://dev.to/deepikandas/finding-webelements-and-webelement-commands-581l</link>
      <guid>https://dev.to/deepikandas/finding-webelements-and-webelement-commands-581l</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is findElement() in Selenium?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;findElement() is a WebDriver method used to locate a single web element on a web page using a locator.&lt;br&gt;
What it actually does.&lt;br&gt;
WebElement can be of any type, like it can be a Text, Link, Radio Button, Drop Down, WebTable or any HTML element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you call findElement():&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium sends request to browser driver (ChromeDriver, etc.)&lt;br&gt;
Driver searches the DOM (Document Object Model)&lt;br&gt;
It finds the first matching element&lt;br&gt;
Returns it as a WebElement object&lt;/p&gt;

&lt;p&gt;👉 That WebElement is your “handle” to interact with the element.&lt;br&gt;
🧩** Syntax**&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;findElement&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;By&lt;/span&gt; &lt;span class="n"&gt;locator&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;1. Return Type: **WebElement&lt;br&gt;
findElement() returns a single WebElement object&lt;br&gt;
That object represents the first matching element in the DOM&lt;br&gt;
**2. Parameter:&lt;/strong&gt; By locator&lt;br&gt;
✔ Meaning:&lt;br&gt;
It accepts a By object&lt;br&gt;
By is a locator strategy class in Selenium&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is By?&lt;/strong&gt;&lt;br&gt;
By is a class used to define how Selenium should locate an element&lt;br&gt;
Examples:&lt;/p&gt;

&lt;p&gt;By.id("username")&lt;br&gt;
By.name("email")&lt;br&gt;
By.xpath("//button[&lt;a class="mentioned-user" href="https://dev.to/id"&gt;@id&lt;/a&gt;='login']")&lt;br&gt;
By.cssSelector("#login")&lt;br&gt;
&lt;strong&gt;WebElement Commands in Selenium&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpbb2yb7qop1u228iln9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpbb2yb7qop1u228iln9.png" alt=" " width="779" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A WebElement represents an element on the webpage, and Selenium provides methods to interact, inspect, and verify it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. SendKeys Command&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;✔ Purpose:&lt;/strong&gt;&lt;br&gt;
is mainly used to enter/input data into editable web elements.&lt;br&gt;
It is commonly used for:&lt;br&gt;
Text fields&lt;br&gt;
Password fields&lt;br&gt;
Text areas&lt;br&gt;
Search boxes&lt;br&gt;
sendKeys() is for giving input (typing data),** not for checkbox/radio button selection.**&lt;br&gt;
✔ Parameter: CharSequence... keysToSend&lt;br&gt;
This means:&lt;br&gt;
👉 It accepts varargs (variable arguments)&lt;br&gt;
👉 Each argument must be a CharSequence&lt;br&gt;
&lt;strong&gt;What is CharSequence?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CharSequence is an interface in Java that represents a sequence of characters.&lt;br&gt;
&lt;strong&gt;Common implementations:&lt;/strong&gt;&lt;br&gt;
String&lt;br&gt;
StringBuilder&lt;br&gt;
StringBuffer&lt;br&gt;
So these are ALL valid:&lt;br&gt;
element.sendKeys("admin");                 // String&lt;br&gt;
element.sendKeys(new StringBuilder("a"));  // StringBuilder&lt;br&gt;
⚡** Why varargs (...)?**&lt;/p&gt;

&lt;p&gt;Because you can send multiple inputs in one call:&lt;br&gt;
element.sendKeys("user", "name");&lt;br&gt;
👉 Selenium internally concatenates them as:username&lt;br&gt;
&lt;strong&gt;✔Return type:&lt;/strong&gt; Nothing&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauzs3p8o1gjh209nv3q0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauzs3p8o1gjh209nv3q0.png" alt=" " width="799" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. clear() Command in Selenium&lt;/strong&gt;&lt;br&gt;
⚡ Method Signature&lt;br&gt;
void clear()&lt;br&gt;
🧠 What does clear() do?&lt;/p&gt;

&lt;p&gt;👉 clear() is used to remove existing text from an input field (text box).&lt;/p&gt;

&lt;p&gt;It deletes any pre-filled or previously entered value.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpd7mg8rjwbrvrahcv2lw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpd7mg8rjwbrvrahcv2lw.png" alt=" " width="800" height="345"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3.click() Command in Selenium&lt;/strong&gt;&lt;br&gt;
⚡ &lt;strong&gt;Method Signature&lt;/strong&gt;&lt;br&gt;
void click()&lt;br&gt;
👉 click() simulates a real user mouse click(left) on a web element.&lt;br&gt;
It is used to interact with:&lt;br&gt;
buttons&lt;br&gt;
links&lt;br&gt;
checkboxes&lt;br&gt;
radio buttons&lt;br&gt;
dropdown triggers&lt;br&gt;
icons&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwz2e7tj2f41w1ft9vkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwz2e7tj2f41w1ft9vkf.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.isDisplayed() Command in Selenium&lt;/strong&gt;&lt;br&gt;
⚡ Method Signature&lt;br&gt;
boolean isDisplayed()&lt;br&gt;
👉 isDisplayed() checks whether a web element is visible on the webpage or not.&lt;br&gt;
It returns:&lt;br&gt;
true → element is visible&lt;br&gt;
false → element is not visible&lt;br&gt;
🧩 Correct Definition&lt;/p&gt;

&lt;p&gt;isDisplayed() is a WebElement method used to determine whether an element is present in the DOM and visible on the web page (i.e., not hidden by CSS or not outside the viewport). It returns a boolean value.&lt;/p&gt;

&lt;p&gt;⚡ Example&lt;br&gt;
WebElement logo = driver.findElement(By.id("logo"));&lt;/p&gt;

&lt;p&gt;boolean status = logo.isDisplayed();&lt;br&gt;
System.out.println(status);&lt;br&gt;
🔍 What it actually checks&lt;/p&gt;

&lt;p&gt;isDisplayed() verifies:&lt;/p&gt;

&lt;p&gt;✔ Element exists in DOM&lt;br&gt;
✔ Element is visible (not hidden using CSS like display: none)&lt;br&gt;
✔ Element has non-zero size&lt;br&gt;
✔ Element is not collapsed or invisible&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.isEnabled() Command in Selenium&lt;/strong&gt;&lt;br&gt;
🧾 Method Signature&lt;br&gt;
boolean isEnabled()&lt;br&gt;
🧠 Meaning&lt;br&gt;
👉 isEnabled() checks whether a web element is enabled or disabled for interaction.&lt;br&gt;
It returns:&lt;br&gt;
true → element is enabled (can be used)&lt;br&gt;
false → element is disabled (cannot be used)&lt;br&gt;
🧩 Interview-ready Definition&lt;/p&gt;

&lt;p&gt;isEnabled() is a WebElement method used to verify whether an element is in an active state and can be interacted with (like clicking or typing). It returns a boolean value.&lt;/p&gt;

&lt;p&gt;⚡ Example&lt;br&gt;
WebElement button = driver.findElement(By.id("login"));&lt;/p&gt;

&lt;p&gt;boolean status = button.isEnabled();&lt;br&gt;
System.out.println(status);&lt;br&gt;
🔍 What it actually checks&lt;/p&gt;

&lt;p&gt;isEnabled() verifies:&lt;/p&gt;

&lt;p&gt;✔ Element is not disabled via HTML attribute (disabled)&lt;br&gt;
✔ Element is interactive&lt;br&gt;
✔ User actions like click/type are allowed&lt;br&gt;
&lt;strong&gt;6.isSelected() Command in Selenium&lt;/strong&gt;&lt;br&gt;
🧾 Method Signature&lt;br&gt;
boolean isSelected()&lt;br&gt;
🧠 Meaning&lt;br&gt;
👉 isSelected() is used to check whether a checkbox or radio button is selected (checked) or not.&lt;br&gt;
It returns:&lt;br&gt;
true → element is selected (checked)&lt;br&gt;
false → element is not selected&lt;br&gt;
🧩** Interview-ready Definition**&lt;br&gt;
isSelected() is a WebElement method used to determine whether a checkbox, radio button, or option in a select list is currently selected. It returns a boolean value.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7layiy7myq0p1bn3od4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7layiy7myq0p1bn3od4.png" alt=" " width="729" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>automation</category>
      <category>java</category>
      <category>testing</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Selenium Execution Flow (Simple Step-by-Step)</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Wed, 27 May 2026 22:00:35 +0000</pubDate>
      <link>https://dev.to/deepikandas/selenium-execution-flow-simple-step-by-step-3e3e</link>
      <guid>https://dev.to/deepikandas/selenium-execution-flow-simple-step-by-step-3e3e</guid>
      <description>&lt;ol&gt;
&lt;li&gt;You run your Java program&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You click Run in Eclipse / IntelliJ.&lt;/p&gt;

&lt;p&gt;WebDriver driver = new ChromeDriver();&lt;br&gt;
driver.get("&lt;a href="https://example.com%22" rel="noopener noreferrer"&gt;https://example.com"&lt;/a&gt;);&lt;/p&gt;

&lt;p&gt;👉 Execution starts from the main() method.&lt;/p&gt;

&lt;p&gt;⚙️ 2. Selenium starts ChromeDriver&lt;br&gt;
Selenium locates the ChromeDriver executable&lt;br&gt;
ChromeDriver starts as a separate server process&lt;br&gt;
A new Chrome browser opens&lt;/p&gt;

&lt;p&gt;👉 Now 3 things exist:&lt;/p&gt;

&lt;p&gt;Your Java code&lt;br&gt;
ChromeDriver (middle layer)&lt;br&gt;
Chrome browser&lt;br&gt;
🌐 3. A browser session is created&lt;/p&gt;

&lt;p&gt;ChromeDriver creates a session like:&lt;/p&gt;

&lt;p&gt;Session ID: 12345&lt;br&gt;
Browser: Chrome&lt;br&gt;
Status: Active&lt;/p&gt;

&lt;p&gt;👉 This session is used for all communication&lt;/p&gt;

&lt;p&gt;🔗 4. Selenium sends commands to browser&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;driver.get("&lt;a href="https://example.com%22" rel="noopener noreferrer"&gt;https://example.com"&lt;/a&gt;);&lt;/p&gt;

&lt;p&gt;This is converted into a request:&lt;/p&gt;

&lt;p&gt;Open URL → &lt;a href="https://example.com" rel="noopener noreferrer"&gt;https://example.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sent like:&lt;/p&gt;

&lt;p&gt;Java → ChromeDriver → Chrome browser&lt;br&gt;
🌍 5. Browser loads the webpage&lt;/p&gt;

&lt;p&gt;Chrome does:&lt;/p&gt;

&lt;p&gt;Downloads HTML&lt;br&gt;
Downloads CSS + JS&lt;br&gt;
Builds DOM (Document Object Model)&lt;br&gt;
Renders UI on screen&lt;/p&gt;

&lt;p&gt;👉 Now you SEE the page&lt;/p&gt;

&lt;p&gt;🌳 6. DOM is created in memory&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Login&lt;/p&gt;

&lt;p&gt;Becomes:&lt;/p&gt;

&lt;p&gt;A DOM node inside browser memory&lt;br&gt;
🤖 7. Selenium finds elements (WebElement creation)&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;WebElement btn = driver.findElement(By.id("login"));&lt;/p&gt;

&lt;p&gt;What happens:&lt;/p&gt;

&lt;p&gt;Selenium asks ChromeDriver:&lt;br&gt;
👉 “Find element with id = login”&lt;br&gt;
ChromeDriver searches DOM&lt;br&gt;
Returns matching node&lt;/p&gt;

&lt;p&gt;👉 Selenium gets a WebElement reference&lt;/p&gt;

&lt;p&gt;🖱️ 8. You perform actions&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;btn.click();&lt;/p&gt;

&lt;p&gt;Flow:&lt;/p&gt;

&lt;p&gt;Selenium → ChromeDriver → Browser → DOM click event&lt;/p&gt;

&lt;p&gt;Browser then:&lt;/p&gt;

&lt;p&gt;Executes click&lt;br&gt;
Runs JS (if any)&lt;br&gt;
Updates UI if needed&lt;br&gt;
🔁 9. Each command repeats same cycle&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;driver.findElement(By.id("user")).sendKeys("admin");&lt;br&gt;
driver.findElement(By.id("pass")).sendKeys("1234");&lt;br&gt;
driver.findElement(By.id("login")).click();&lt;/p&gt;

&lt;p&gt;Each step:&lt;/p&gt;

&lt;p&gt;👉 Find element → Send command → Browser executes → Response&lt;/p&gt;

&lt;p&gt;🧹 10. Closing browser&lt;br&gt;
driver.quit();&lt;/p&gt;

&lt;p&gt;What happens:&lt;/p&gt;

&lt;p&gt;All tabs close&lt;br&gt;
ChromeDriver session ends&lt;br&gt;
Memory is released&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpphkrw9drzb44rvftm7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpphkrw9drzb44rvftm7.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
Why WebDriver is called a Client–Server Model&lt;/p&gt;

&lt;p&gt;Because Selenium and the browser do NOT talk directly. Instead, they communicate through a structured request–response system, just like a client and a server.&lt;/p&gt;

&lt;p&gt;🧠 Simple Definition&lt;/p&gt;

&lt;p&gt;👉 Selenium WebDriver follows a client–server architecture where:&lt;/p&gt;

&lt;p&gt;Client (Selenium code) sends requests&lt;br&gt;
Server (Browser Driver + Browser) processes them&lt;br&gt;
Response is sent back to the client&lt;br&gt;
🧩 Who is Client and who is Server?&lt;br&gt;
🔹 Client Side&lt;/p&gt;

&lt;p&gt;👉 Your Selenium test code&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;driver.findElement(By.id("login")).click();&lt;/p&gt;

&lt;p&gt;✔ This is the request generator&lt;/p&gt;

&lt;p&gt;🔹 Server Side (Two layers)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ChromeDriver (Server bridge)
Receives commands from Selenium
Translates them into browser-understandable actions&lt;/li&gt;
&lt;li&gt;Chrome Browser (execution server)
Actually performs actions
Works with:
Blink (rendering engine)
V8 (JavaScript engine)
🔁 How communication happens
CLIENT (Selenium Code)
    ↓ HTTP Request
SERVER (ChromeDriver)
    ↓ Internal Commands
BROWSER (Chrome)
    ↓
DOM / UI updated
    ↓ HTTP Response
CLIENT (Selenium Code)
📡 Why HTTP communication?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selenium uses:&lt;/p&gt;

&lt;p&gt;W3C WebDriver Protocol (JSON over HTTP)&lt;/p&gt;

&lt;p&gt;Example request:&lt;/p&gt;

&lt;p&gt;POST /session/{id}/element&lt;br&gt;
{&lt;br&gt;
  "using": "id",&lt;br&gt;
  "value": "login"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;👉 ChromeDriver reads it and acts on the browser&lt;/p&gt;

&lt;p&gt;🧠 Why this design?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Language independence 🌍
Client can be Java, Python, C#, JS&lt;/strong&gt;
Server (browser driver) understands standard protocol&lt;/li&gt;
&lt;li&gt;Browser independence 🌐
Same client works with:
ChromeDriver
GeckoDriver (Firefox)
EdgeDriver&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>automation</category>
      <category>java</category>
      <category>testing</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Locators :cssSelector</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Wed, 27 May 2026 21:58:24 +0000</pubDate>
      <link>https://dev.to/deepikandas/locators-cssselector-1emp</link>
      <guid>https://dev.to/deepikandas/locators-cssselector-1emp</guid>
      <description>&lt;p&gt;`package locators;&lt;br&gt;
import org.openqa.selenium.By;&lt;br&gt;
import org.openqa.selenium.WebDriver;&lt;br&gt;
import org.openqa.selenium.chrome.ChromeDriver;&lt;br&gt;
public class csslocators {&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static void main(String[] args) {
    WebDriver ch = new ChromeDriver(); // finding element by id
    ch.get("https://www.saucedemo.com/"); 
    //using cssSelector id attribute
    ch.findElement(By.cssSelector("input[id='user-name']")).sendKeys("standard_user");
    ch.findElement(By.cssSelector("input[id='password']")).sendKeys("secret_sauce");
    ch.findElement(By.cssSelector("input[id='login-button']")).click();

    //using cssSelector name attribute
    ch.findElement(By.cssSelector("input[name='user-name']")).sendKeys("standard_user");
    ch.findElement(By.cssSelector("input[name='password']")).sendKeys("secret_sauce");
    ch.findElement(By.cssSelector("input[name='login-button']")).click();

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;br&gt;
`&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Locators in Selenium WebDriver</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sun, 17 May 2026 12:37:04 +0000</pubDate>
      <link>https://dev.to/deepikandas/locators-in-selenium-webdriver-1p08</link>
      <guid>https://dev.to/deepikandas/locators-in-selenium-webdriver-1p08</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Locators are the way to identify an HTML element on a web page&lt;/li&gt;
&lt;li&gt;Locators are one of the essential components of Selenium infrastructure, which help Selenium scripts in uniquely identifying the WebElements(such as text box, button, etc.) present of the web page.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Selenium:What is WebElement?</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sun, 17 May 2026 12:34:44 +0000</pubDate>
      <link>https://dev.to/deepikandas/seleniumwhat-is-webelement-2ei4</link>
      <guid>https://dev.to/deepikandas/seleniumwhat-is-webelement-2ei4</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is a HTML Element?&lt;/strong&gt;&lt;br&gt;
A HTML element = an HTML tag + its content + attributes&lt;br&gt;
Example:&lt;br&gt;
Login&lt;br&gt;
Here:&lt;br&gt;
 → element type&lt;br&gt;
id="loginBtn" → attribute&lt;br&gt;
Login → visible content&lt;/p&gt;

&lt;p&gt;So this entire piece is a HTML element (button element).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcq7y5r3dr0ig46rnos3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcq7y5r3dr0ig46rnos3.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What is a WebElement in Selenium?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 A WebElement is a representation of an HTML element in Selenium.&lt;br&gt;
A WebElement in Selenium is an interface that represents an HTML element on a web page. It provides methods to interact with web elements like clicking, typing, and reading attributes.”&lt;br&gt;
In simple terms:&lt;br&gt;
A WebElement is a Java object that represents an element in the web page DOM (like a button, textbox, checkbox, link, etc.)&lt;br&gt;
&lt;strong&gt;Simple Meaning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔ HTML element lives in browser DOM&lt;br&gt;
✔ Selenium creates a WebElement object to control it&lt;br&gt;
WebElement vs DOM Element (Core Difference)&lt;br&gt;
🌐 &lt;strong&gt;1. DOM Element (Browser Side Concept)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A DOM element is the actual element present inside the browser’s page structure.&lt;/p&gt;

&lt;p&gt;When a webpage loads, the browser converts HTML into a DOM (Document Object Model) tree.&lt;/p&gt;

&lt;p&gt;Example HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;button id="login"&amp;gt;Login&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the browser DOM, this becomes a node like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DOM Tree
 └── button#login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔥 Key point:&lt;br&gt;
It exists inside the browser memory&lt;br&gt;
It is part of the rendered page structure&lt;br&gt;
JavaScript directly interacts with it.&lt;br&gt;
&lt;strong&gt;WebElement (Selenium Side Concept)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A WebElement is a Selenium representation (proxy/reference) of a DOM element.&lt;/p&gt;

&lt;p&gt;When you write:&lt;/p&gt;

&lt;p&gt;WebElement loginBtn = driver.findElement(By.id("login"));&lt;/p&gt;

&lt;p&gt;👉 Selenium does NOT store the actual button&lt;br&gt;
👉 It stores a reference (locator + session info) to that DOM element&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkk7fg7azpqmfzcyje4t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkk7fg7azpqmfzcyje4t.png" alt=" " width="753" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Selenium Webdriver Browser Commands</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sun, 17 May 2026 12:33:39 +0000</pubDate>
      <link>https://dev.to/deepikandas/selenium-webdriver-browser-commands-b9d</link>
      <guid>https://dev.to/deepikandas/selenium-webdriver-browser-commands-b9d</guid>
      <description>&lt;p&gt;&lt;strong&gt;What are Browser Commands?&lt;/strong&gt;&lt;br&gt;
Selenium WebDriver provides predefined methods and functions that enable developers to interact directly with browsers.&lt;/p&gt;

&lt;p&gt;These commands provide exact control over the browser's actions, like loading specific pages, extracting details such as page titles and URLs, accessing page source code, and controlling browser windows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3htb3o0qe32nqs1xk8kf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3htb3o0qe32nqs1xk8kf.png" alt=" " width="655" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. get(String url) command&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;get(String arg0): &lt;br&gt;
return type: Nothing&lt;br&gt;
parameter: String&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;calling driver.get() multiple times does not open a new window; it simply reloads the same page in the current browser tab.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait until page load completes&lt;br&gt;
driver.get()&lt;br&gt;
↓&lt;br&gt;
Browser starts loading page&lt;br&gt;
↓&lt;br&gt;
Wait until page load completes (basic level)&lt;br&gt;
↓&lt;br&gt;
Next line of code executes&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//***get(String url) command*********
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class BrowserCommands {
    public static void main(String[] args) {
        WebDriver driver=new ChromeDriver();
         driver.get("https://eduplaynation.2-min.in/"); 
        String URL = "https://eduplaynation.2-min.in/";
        driver.get(URL);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;2.Get CurrentUrl Command&lt;/strong&gt;&lt;br&gt;
getCurrentUrl() retrieves the web address (URL) of the page currently displayed by the browser.&lt;br&gt;
return type: String&lt;br&gt;
parameter: Nothing&lt;/p&gt;

&lt;p&gt;It is mainly used to:&lt;br&gt;
Verify page navigation&lt;br&gt;
Check redirects&lt;br&gt;
Validate whether expected page opened&lt;br&gt;
Debug test execution&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class BrowserCommands {
    public static void main(String[] args) {
        WebDriver driver=new ChromeDriver();
        driver.get("https://google.com");
        System.out.println(driver.getCurrentUrl());
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3.Get Title Command&lt;/strong&gt;&lt;br&gt;
getTitle();&lt;br&gt;
This method fetches the Title of the current page.&lt;br&gt;
Return type:String&lt;br&gt;
Parameter: Nothing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioq2mmacr99afgoh5mz7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioq2mmacr99afgoh5mz7.png" alt=" " width="799" height="363"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.Get page Source Command:&lt;/strong&gt;&lt;br&gt;
getPageSource() is a method in Selenium WebDriver that returns the complete HTML source code of the currently loaded webpage as a String.&lt;br&gt;
Return type:String&lt;br&gt;
Parameter: Nothing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbiyypujwaninp8dixgxc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbiyypujwaninp8dixgxc.png" alt=" " width="800" height="647"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5.Quit command&lt;/strong&gt;&lt;br&gt;
Return Type:Nothing&lt;br&gt;
Parameter: Nothing&lt;br&gt;
This command will only close the browser's window opened by the selenium in the same session. If any browser is opened manually, this will have no impact on the same. Also, there is no impact on the browsers opened in another run or session even by the Selenium.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg59j1pjkjjdyvxysaiga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg59j1pjkjjdyvxysaiga.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;6.Close command:&lt;/strong&gt;&lt;br&gt;
This method Close only the current window the WebDriver is currently controlling.&lt;br&gt;
Return Type:Nothing&lt;br&gt;
Parameter: Nothing&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo09v0lxu3vfzltq8su5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo09v0lxu3vfzltq8su5g.png" alt=" " width="799" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Selenium WebDriver Achitecture</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sun, 17 May 2026 12:31:25 +0000</pubDate>
      <link>https://dev.to/deepikandas/selenium-webdriver-achitecture-f1</link>
      <guid>https://dev.to/deepikandas/selenium-webdriver-achitecture-f1</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Selenium WebDriver?&lt;/strong&gt;&lt;br&gt;
Selenium WebDriver is a set of open-source APIs, which provided the capabilities to interact with any of the modern web-browsers and then, in-turn to automate the user actions with that browser. It is an essential component of the Selenium family. As we know, Selenium is not an independent tool; rather, it is a collection of tools that make the Selenium suite, which was created when two projects Selenium RC and WebDriver were merged.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1xfrmr6gcuz6t052edt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1xfrmr6gcuz6t052edt9.png" alt=" " width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client Libraries (Language Bindings)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 This is just your programming language support&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;Java&lt;br&gt;
Python&lt;br&gt;
C#&lt;br&gt;
JavaScript&lt;br&gt;
Simple meaning:&lt;/p&gt;

&lt;p&gt;“Selenium lets you write automation code in your favorite language.”&lt;/p&gt;

&lt;p&gt;So you can say:&lt;/p&gt;

&lt;p&gt;Java code → Selenium library understands it&lt;br&gt;
Python code → Selenium library understands it&lt;br&gt;
📡 2. Communication (JSON /W3C+ HTTP)&lt;/p&gt;

&lt;p&gt;👉 This is how Selenium sends messages&lt;/p&gt;

&lt;p&gt;Simple meaning:&lt;/p&gt;

&lt;p&gt;“Your code talks to browser using messages sent over the internet format (HTTP + JSON)”&lt;/p&gt;

&lt;p&gt;Think like:&lt;/p&gt;

&lt;p&gt;You (Java code)&lt;br&gt;
   ↓ message&lt;br&gt;
Browser driver&lt;/p&gt;

&lt;p&gt;Message looks like:&lt;/p&gt;

&lt;p&gt;click button&lt;br&gt;
open URL&lt;br&gt;
type text&lt;br&gt;
🚗 3. Browser Drivers&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;ChromeDriver&lt;br&gt;
GeckoDriver&lt;br&gt;
Simple meaning:&lt;/p&gt;

&lt;p&gt;“Each browser has its own helper program that understands Selenium commands”&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;p&gt;Chrome → ChromeDriver&lt;br&gt;
Firefox → GeckoDriver&lt;/p&gt;

&lt;p&gt;👉 This driver acts like a translator&lt;/p&gt;

&lt;p&gt;🌍 4. Browsers&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;Chrome&lt;br&gt;
Firefox&lt;br&gt;
Edge&lt;br&gt;
Simple meaning:&lt;/p&gt;

&lt;p&gt;“This is where your website actually opens and runs”&lt;/p&gt;

&lt;p&gt;Browser must be installed because:&lt;/p&gt;

&lt;p&gt;Selenium does NOT create browsers&lt;br&gt;
It only controls existing browsers&lt;br&gt;
🔁 Full flow (very simple)&lt;br&gt;
Your Code (Java/Python)&lt;br&gt;
        ↓&lt;br&gt;
Selenium Library&lt;br&gt;
        ↓&lt;br&gt;
HTTP + JSON messages&lt;br&gt;
        ↓&lt;br&gt;
Browser Driver (ChromeDriver / GeckoDriver)&lt;br&gt;
        ↓&lt;br&gt;
Browser (Chrome / Firefox)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium 4 - Selenium Manager:&lt;/strong&gt;&lt;br&gt;
👉 Selenium Manager is an internal feature of Selenium 4 WebDriver that automatically handles browser drivers.&lt;br&gt;
Built inside Selenium 4 WebDriver library itself&lt;br&gt;
⚙️** What it does**&lt;br&gt;
✔ Detects installed browser version&lt;br&gt;
✔ Downloads correct driver (ChromeDriver/GeckoDriver, etc.)&lt;br&gt;
✔ Sets driver path automatically&lt;br&gt;
✔ Removes need for System.setProperty()&lt;br&gt;
&lt;strong&gt;❌ In Selenium 3&lt;/strong&gt;&lt;br&gt;
No Selenium Manager&lt;br&gt;
You had to manually set:&lt;br&gt;
&lt;code&gt;System.setProperty("webdriver.chrome.driver", "path");&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is Selenium?</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Sun, 17 May 2026 12:30:14 +0000</pubDate>
      <link>https://dev.to/deepikandas/what-is-selenium-1fgb</link>
      <guid>https://dev.to/deepikandas/what-is-selenium-1fgb</guid>
      <description>&lt;p&gt;Selenium is an open-source automation tool used for automating web browsers to test web applications by mimicking real user actions.&lt;br&gt;
&lt;strong&gt;Features of Selenium:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. Open Source&lt;/strong&gt;&lt;br&gt;
Free to use&lt;br&gt;
No license cost&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Cross-Browser Testing&lt;/strong&gt;&lt;br&gt;
Works with different browsers like:&lt;br&gt;
Google Chrome&lt;br&gt;
Mozilla Firefox&lt;br&gt;
Microsoft Edge&lt;br&gt;
Safari&lt;br&gt;
This helps test whether your website works everywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Supports Multiple Programming Languages&lt;/strong&gt;&lt;br&gt;
You can write Selenium scripts in:&lt;br&gt;
Java&lt;br&gt;
Python&lt;br&gt;
C#&lt;br&gt;
JavaScript&lt;br&gt;
&lt;strong&gt;4. Automates Web Browsers&lt;/strong&gt;&lt;br&gt;
It can perform user actions like:&lt;br&gt;
Click buttons&lt;br&gt;
Enter text&lt;br&gt;
Select dropdowns&lt;br&gt;
Navigate pages&lt;br&gt;
&lt;strong&gt;5. Supports Parallel Testing&lt;/strong&gt;&lt;br&gt;
Run multiple test cases at the same time using tools like TestNG.&lt;br&gt;
This saves testing time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Supports Web Element Identification&lt;/strong&gt;&lt;br&gt;
Find elements using:&lt;br&gt;
ID&lt;br&gt;
Name&lt;br&gt;
XPath&lt;br&gt;
CSS Selector&lt;br&gt;
Class Name&lt;br&gt;
&lt;strong&gt;7. Platform Independent&lt;/strong&gt;&lt;br&gt;
Works on:&lt;br&gt;
Windows&lt;br&gt;
macOS&lt;br&gt;
Linux&lt;br&gt;
&lt;strong&gt;8. Integration with Testing Tools&lt;/strong&gt;&lt;br&gt;
Can integrate with:&lt;br&gt;
TestNG&lt;br&gt;
JUnit&lt;br&gt;
Maven&lt;br&gt;
Jenkins&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffgtazqlnpyu8y9xruf1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffgtazqlnpyu8y9xruf1x.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Components of Se&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8halvtkq2iop2w8sydi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8halvtkq2iop2w8sydi.png" alt=" " width="800" height="535"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What is Selenium IDE?&lt;/strong&gt;&lt;br&gt;
Selenium IDE is an extension available for both Firefox and Chrome, which has the record and replay functionality available. Selenium IDE also now has the capability of exporting the code in various predefined languages. It also gives the ability to use one test case inside another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium RC&lt;/strong&gt;&lt;br&gt;
Selenium RC (Remote Control) was the older version of Selenium used before WebDriver.&lt;br&gt;
Its job was to act as a middleman between your test code and the browser.&lt;br&gt;
&lt;strong&gt;How it worked:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your Java Code → Selenium RC Server → JavaScript → Browser&lt;/p&gt;

&lt;p&gt;It converted your test commands into JavaScript and injected them into the browser to perform actions like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clicking buttons&lt;/li&gt;
&lt;li&gt;Typing text&lt;/li&gt;
&lt;li&gt;Opening webpages&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It was created because browsers did not support direct automation at that time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problems with Selenium RC:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Slower (because of extra server layer)&lt;br&gt;
Browser security issues (Same Origin Policy)&lt;br&gt;
More setup complexity&lt;br&gt;
Because of these issues, it was replaced by Selenium WebDriver, which talks more directly to browsers.&lt;/p&gt;

&lt;p&gt;One-line summary:&lt;br&gt;
Selenium RC was an old Selenium tool that controlled browsers indirectly using a server and JavaScript, but it was replaced by WebDriver because WebDriver is faster and more reliable.&lt;br&gt;
&lt;strong&gt;Selenium WebDriver&lt;/strong&gt;&lt;br&gt;
Selenium WebDriver is a collection of open-source tools/APIs that allows users to write custom code in their language of choice and interact with the browser of their choice, through browser-specific drivers.&lt;br&gt;
&lt;strong&gt;Selenium Grid&lt;/strong&gt;&lt;br&gt;
Selenium GRID allows users to run tests on different machines, with different browsers and OS simultaneously, which gives the ability to run tests in parallel, as such saving a lot of time and resources testing on several machines.&lt;br&gt;
&lt;strong&gt;Selenium Advantages&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt; → Free to download and use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;- Automates User Actions&lt;/strong&gt; → Can perform clicks, typing, scrolling, drag &amp;amp; drop, etc.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Easy to Use&lt;/strong&gt; → Simple to learn and customizable&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;Supports Many Languages&lt;/strong&gt; → Works with Java, Python, JavaScript, C#, etc.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Browser Support&lt;/strong&gt; → Works on Chrome, Firefox, Edge, Safari, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Platform Support&lt;/strong&gt; → Runs on Windows, Linux, and macOS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Framework Integration&lt;/strong&gt; → Supports TestNG, Maven, PyTest, Jenkins, and other tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code Reusability&lt;/strong&gt; → Same test scripts can run on different browsers and machines&lt;br&gt;
&lt;strong&gt;Selenium Limitations&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Desktop Application Testing → Cannot automate desktop/software applications, only web applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Built-in Assertions → Needs testing frameworks like JUnit, TestNG, or PyTest for validation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Image/Barcode/CAPTCHA Testing → Cannot handle image-based validations or CAPTCHA scanning&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No API Testing → Cannot test APIs directly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Performance Testing → Cannot measure speed, load, or performance of applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Inbuilt Reporting → Requires external tools/frameworks for test reports&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Note:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Assertions&lt;/strong&gt; are checks used in testing to verify whether the actual result matches the expected result.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>#39 LinkedList implements Queue</title>
      <dc:creator>Deepikandas</dc:creator>
      <pubDate>Mon, 11 May 2026 13:49:59 +0000</pubDate>
      <link>https://dev.to/deepikandas/39-linkedlist-implements-queue-1dd3</link>
      <guid>https://dev.to/deepikandas/39-linkedlist-implements-queue-1dd3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hierarchy&lt;/strong&gt;&lt;br&gt;
Collection Interface&lt;br&gt;
   ↓&lt;br&gt;
Queue Interface&lt;br&gt;
   ↓&lt;br&gt;
Deque Interface&lt;br&gt;
   ↓&lt;br&gt;
LinkedList class&lt;br&gt;
&lt;strong&gt;Declaration as Queue&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;Queue&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;LinkedList&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Queue does NOT support indexing&lt;/strong&gt;&lt;br&gt;
So these are invalid concepts for Queue:&lt;br&gt;
❌get(0)&lt;br&gt;
❌add(2, value)&lt;br&gt;
❌remove(1)&lt;br&gt;
Queues work only:&lt;br&gt;
&lt;strong&gt;front insertion/removal&lt;br&gt;
FIFO operations&lt;br&gt;
You process elements sequentially.&lt;br&gt;
You don't jump to middle positions.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Queue Operations&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Method&lt;/strong&gt;           ** Purpose**&lt;br&gt;
add()             Insert element&lt;br&gt;
offer()           Insert safely&lt;br&gt;
poll()            Remove first element&lt;br&gt;
remove()      Remove first element&lt;br&gt;
peek()            View first element&lt;br&gt;
element()     View first element&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0632doxt9zqogfywbsy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0632doxt9zqogfywbsy.png" alt=" " width="690" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>beginners</category>
      <category>computerscience</category>
      <category>java</category>
    </item>
  </channel>
</rss>
