1. Home
  2. āĻ“āϝāĻŧ⧇āĻŦ āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāĻĒāĻŋāĻ‚
  3. selenium āĻ“āϝāĻŧ⧇āĻŦ āĻ¸ā§āĻ•ā§āϰāĻžāĻĒāĻŋāĻ‚
  4. 🧠 Selenium find_element āĻāĻŦāĻ‚ find_elements āϟāĻŋāωāĻŸā§‹āϰāĻŋ⧟āĻžāϞ (āĻŦāĻžāĻ‚āϞāĻžā§Ÿ)

🧠 Selenium find_element āĻāĻŦāĻ‚ find_elements āϟāĻŋāωāĻŸā§‹āϰāĻŋ⧟āĻžāϞ (āĻŦāĻžāĻ‚āϞāĻžā§Ÿ)


āϧāϰ⧋ āϤ⧁āĻŽāĻŋ āĻāĻ•āϟāĻž āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāĻŸā§‡ āϗ⧇āϛ⧋ āĻāĻŦāĻ‚ āϏ⧇āĻ–āĻžāύ⧇ āĻ…āύ⧇āĻ• button, input box āĻŦāĻž link āφāϛ⧇āĨ¤ āϤ⧁āĻŽāĻŋ āϚāĻžāĻ“:
➤ āĻāĻ•āϟāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ button āĻ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϤ⧇
➤ āĻāĻ•āϟāĻž input āĻĢāĻŋāĻ˛ā§āĻĄā§‡ āĻŸā§‡āĻ•ā§āϏāϟ āϟāĻžāχāĻĒ āĻ•āϰāϤ⧇
➤ āĻŦāĻž āϏāĻŦāϗ⧁āϞ⧋ link āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰāϤ⧇

āĻāϗ⧁āϞ⧋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāχ āφāĻŽāϰāĻž Selenium āĻāϰ find_element āĻ“ find_elements āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋāĨ¤


✅ find_element() vs find_elements()

āĻŽā§‡āĻĨāĻĄāϕ⧀ āĻ•āϰ⧇āϰāĻŋāϟāĻžāĻ°ā§āύ
find_elementāĻāĻ•āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āϖ⧁āρāĻœā§‡ āφāύ⧇āĻāĻ•āϟāĻŋ WebElement āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ
find_elementsāĻāĻ•āĻžāϧāĻŋāĻ• āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āϖ⧁āρāĻœā§‡ āφāύ⧇WebElement-āĻāϰ āϞāĻŋāĻ¸ā§āϟ

đŸ› ī¸ āωāĻĻāĻžāĻšāϰāĻŖ HTML:

<html>
  <body>
    <h1 class="someclass" id="greatID">Super title</h1>
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
  </body>
</html>

đŸŽ¯ find_element āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āωāĻĻāĻžāĻšāϰāĻŖ

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

# h1 āĻŸā§āϝāĻžāĻ— āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰāĻž
h1 = driver.find_element(By.TAG_NAME, 'h1')

# class āĻĻāĻŋāϝāĻŧ⧇ āĻ–ā§‹āρāϜāĻž
h1 = driver.find_element(By.CLASS_NAME, 'someclass')

# id āĻĻāĻŋāϝāĻŧ⧇ āĻ–ā§‹āρāϜāĻž
h1 = driver.find_element(By.ID, 'greatID')

# xpath āĻĻāĻŋāϝāĻŧ⧇ āĻ–ā§‹āρāϜāĻž
h1 = driver.find_element(By.XPATH, '//h1')

📋 find_elements āωāĻĻāĻžāĻšāϰāĻŖ

# āϏāĻŦ <a> āĻŸā§āϝāĻžāĻ— āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰāĻž
all_links = driver.find_elements(By.TAG_NAME, 'a')

# āϞ⧁āĻĒ āĻ•āϰ⧇ āϏāĻŦ āϞāĻŋāĻ‚āϕ⧇āϰ āĻŸā§‡āĻ•ā§āϏāϟ āĻĒā§āϰāĻŋāĻ¨ā§āϟ
for link in all_links:
    print(link.text)

🔍 WebElement āϕ⧀?

WebElement āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϝ⧇āϟāĻž āϕ⧋āύ⧋ HTML āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟāϕ⧇ āϰāĻŋāĻĒā§āϰ⧇āĻœā§‡āĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤ āϤ⧁āĻŽāĻŋ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡:

  • .text → āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āĻŸā§‡āĻ•ā§āϏāϟ āĻŦ⧇āϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧋
  • .click() → āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧋
  • .get_attribute('class') → attribute āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧋
  • .send_keys('hello') → āχāύāĻĒ⧁āĻŸā§‡ āϟāĻžāχāĻĒ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧋
  • .is_displayed() → āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āχāωāϜāĻžāϰ⧇āϰ āĻšā§‹āϖ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇ āĻ•āĻŋāύāĻž āϏ⧇āϟāĻž āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧋

đŸ§Ē Honeypot āϕ⧀?

āϧāϰ⧋ āĻāĻ•āϟāĻž āϏāĻžāχāĻŸā§‡ āĻāĻŽāύ input āφāϛ⧇:

<input type="hidden" name="custId" value="">

āĻāϟāĻž āχāωāϜāĻžāϰ āĻĻ⧇āĻ–āϤ⧇āχ āĻĒāĻžāϝāĻŧ āύāĻž, āĻ•āĻžāϰāĻŖ āĻāϟāĻž hidden. āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻŦāϟ āĻāχ āχāύāĻĒ⧁āĻŸā§‡āĻ“ āĻ•āĻŋāϛ⧁ āϟāĻžāχāĻĒ āĻ•āϰ⧇ āĻĢ⧇āϞ⧇, āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻŦ⧁āĻā§‡ āϝāĻžāϝāĻŧ āĻāϟāĻž āĻŦāϟ! āĻāϟāĻžāϕ⧇āχ āĻŦāϞ⧇ Honeypot trap.

āϤāĻžāχ āφāĻŽāϰāĻž .is_displayed() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻšā§‡āĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϕ⧋āύ āχāύāĻĒ⧁āϟāϟāĻž āφāϏāϞ⧇āχ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āĻ•āĻŋāύāĻžāĨ¤


đŸ§Ē Full Example: Hacker News āϞāĻ—āχāύ

from selenium import webdriver
from selenium.webdriver.common.by import By

USERNAME = "your_username"
PASSWORD = "your_password"

driver = webdriver.Chrome()
driver.get("https://news.ycombinator.com/login")

# āχāωāϜāĻžāϰāύ⧇āĻŽ āχāύāĻĒ⧁āĻŸā§‡ āϟāĻžāχāĻĒ āĻ•āϰāĻž
driver.find_element(By.XPATH, "//input").send_keys(USERNAME)

# āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āχāύāĻĒ⧁āĻŸā§‡ āϟāĻžāχāĻĒ āĻ•āϰāĻž
driver.find_element(By.XPATH, "//input[@type='password']").send_keys(PASSWORD)

# login āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ•
driver.find_element(By.XPATH, "//input[@value='login']").click()

🔐 āϞāĻ—āχāύ āϏāĻžāĻ•āϏ⧇āϏāĻĢ⧁āϞ āĻ•āĻŋāύāĻž āĻŦ⧁āĻāĻŦā§‹ āĻ•āĻŋāĻ­āĻžāĻŦ⧇?

from selenium.common.exceptions import NoSuchElementException

try:
    logout_button = driver.find_element(By.ID, "logout")
    print("✅ āϏāĻžāĻ•āϏ⧇āϏāĻĢ⧁āϞ āϞāĻ—āχāύ")
except NoSuchElementException:
    print("❌ āϭ⧁āϞ āχāωāϜāĻžāϰāύ⧇āĻŽ āĻŦāĻž āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ")

✅ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āϰāĻŋāĻ­āĻŋāω:

  • find_element: āĻĒā§āϰāĻĨāĻŽ āϝ⧇ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻŽā§‡āϞ⧇ āϏ⧇āϟāĻžāχ āĻĻ⧇āϝāĻŧ
  • find_elements: āϏāĻŦ āĻŽāĻŋāϞ⧇ āĻāĻŽāύ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϞāĻŋāĻ¸ā§āϟ āĻĻ⧇āϝāĻŧ
  • āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āωāĻĒāϰ .click(), .text, .get_attribute() āĻāϰ āĻŽāϤ⧋ āĻ…ā§āϝāĻžāĻ•āĻļāύ āύ⧇āϝāĻŧāĻž āϝāĻžāϝāĻŧ
  • āϏāĻžāχāĻŸā§‡ āĻŦāϟ āϧāϰāĻžāϰ āϜāĻ¨ā§āϝ honeypot āĻŸā§āĻ°ā§āϝāĻžāĻĒ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇, is_displayed() āĻĻāĻŋāϝāĻŧ⧇ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϚāϞāĻž āϝāĻžāϝāĻŧ

How can we help?