Bird
Raised Fist0
Selenium Pythontesting~5 mins

First Selenium script in Selenium Python

Choose your learning style10 modes available
Introduction

Selenium helps you control a web browser automatically. This lets you test websites like a real user would.

You want to check if a website loads correctly.
You want to test if clicking a button works.
You want to fill a form and submit it automatically.
You want to check if a page shows the right text after an action.
Syntax
Selenium Python
from selenium import webdriver
from selenium.webdriver.common.by import By

# Start browser
driver = webdriver.Chrome()

# Open a website
driver.get('https://example.com')

# Find an element
element = driver.find_element(By.TAG_NAME, 'h1')

# Check text
assert element.text == 'Example Domain'

# Close browser
driver.quit()

Use webdriver.Chrome() to open Chrome browser.

Use By to find elements safely and clearly.

Examples
Open Firefox browser instead of Chrome.
Selenium Python
driver = webdriver.Firefox()
driver.get('https://example.com')
Find a button by its unique ID.
Selenium Python
element = driver.find_element(By.ID, 'submit-button')
Check if the page title contains 'Welcome'.
Selenium Python
assert 'Welcome' in driver.title
Sample Program

This script opens Chrome, goes to example.com, finds the main heading, checks its text, prints a success message, and closes the browser.

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

# Open Chrome browser
driver = webdriver.Chrome()

# Go to example.com
driver.get('https://example.com')

# Find the main heading
heading = driver.find_element(By.TAG_NAME, 'h1')

# Check the heading text
assert heading.text == 'Example Domain'

print('Test passed: Heading text is correct.')

# Close the browser
driver.quit()
OutputSuccess
Important Notes

Make sure you have the correct browser driver installed (like chromedriver for Chrome).

Always close the browser with driver.quit() to free resources.

Use clear locators like By.ID or By.TAG_NAME for reliable tests.

Summary

Selenium scripts control browsers to test websites automatically.

Start with opening a browser, visiting a page, finding elements, checking text, and closing the browser.

Use assertions to confirm the website behaves as expected.

Practice

(1/5)
1. What is the main purpose of a Selenium script in software testing?
easy
A. To automate browser actions for testing websites
B. To write manual test cases on paper
C. To design website layouts
D. To create databases for applications

Solution

  1. Step 1: Understand Selenium's role

    Selenium is a tool used to control browsers automatically for testing purposes.
  2. Step 2: Match purpose with options

    Only To automate browser actions for testing websites describes automating browser actions to test websites, which is Selenium's main use.
  3. Final Answer:

    To automate browser actions for testing websites -> Option A
  4. Quick Check:

    Selenium automates browsers = B [OK]
Hint: Selenium controls browsers automatically for testing [OK]
Common Mistakes:
  • Confusing Selenium with manual testing
  • Thinking Selenium designs websites
  • Mixing Selenium with database creation
2. Which of the following is the correct way to open a Chrome browser using Selenium in Python?
easy
A. driver = webdriver.open('chrome')
B. driver = webdriver.Firefox()
C. driver = webdriver.Chrome()
D. driver = webdriver.start('chrome')

Solution

  1. Step 1: Recall Selenium syntax for Chrome

    In Selenium Python, opening Chrome uses webdriver.Chrome() constructor.
  2. Step 2: Check options for correct syntax

    Only driver = webdriver.Chrome() uses the correct constructor. Others are either for different browsers or invalid methods.
  3. Final Answer:

    driver = webdriver.Chrome() -> Option C
  4. Quick Check:

    Open Chrome with webdriver.Chrome() = C [OK]
Hint: Use webdriver.Chrome() to open Chrome browser [OK]
Common Mistakes:
  • Using webdriver.Firefox() for Chrome
  • Calling non-existent methods like open() or start()
  • Missing parentheses after Chrome
3. What will be the output of this Selenium Python code snippet?
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://example.com')
element = driver.find_element(By.TAG_NAME, 'h1')
print(element.text)
driver.quit()
medium
A. Prints nothing because element.text is empty
B. Throws an error because By.TAG_NAME is invalid
C. Prints the URL 'https://example.com'
D. Prints the text inside the first <h1> tag on example.com

Solution

  1. Step 1: Understand code actions

    The code opens Chrome, navigates to example.com, finds the first <h1> element, prints its text, then closes the browser.
  2. Step 2: Analyze expected output

    example.com has an <h1> with text 'Example Domain', so element.text prints that text.
  3. Final Answer:

    Prints the text inside the first <h1> tag on example.com -> Option D
  4. Quick Check:

    find_element(By.TAG_NAME, 'h1') gets <h1> text = D [OK]
Hint: find_element with By.TAG_NAME gets first matching tag text [OK]
Common Mistakes:
  • Thinking By.TAG_NAME is invalid
  • Expecting URL printed instead of element text
  • Assuming element.text is empty without checking page
4. Identify the error in this Selenium Python script:
from selenium import webdriver

driver = webdriver.Chrome
driver.get('https://example.com')
driver.quit()
medium
A. Missing parentheses after webdriver.Chrome to create driver instance
B. Incorrect URL format in driver.get() method
C. driver.quit() is called before opening browser
D. Indentation error on driver.get() line is invalid in Python

Solution

  1. Step 1: Check webdriver.Chrome usage

    webdriver.Chrome is a class; to create a driver object, parentheses are needed: webdriver.Chrome()
  2. Step 2: Review other lines for errors

    URL format is correct, driver.quit() is after get().
  3. Step 3: Determine main error

    Missing parentheses causes driver to be a class, not an instance, so driver.get() will fail.
  4. Final Answer:

    Missing parentheses after webdriver.Chrome to create driver instance -> Option A
  5. Quick Check:

    webdriver.Chrome() needs parentheses = A [OK]
Hint: Always add () after webdriver.Chrome to create driver [OK]
Common Mistakes:
  • Forgetting parentheses after webdriver.Chrome
  • Thinking URL format is wrong
  • Confusing the order of driver.get() and driver.quit()
5. You want to write a Selenium script that opens Chrome, goes to 'https://example.com', checks if the page title is 'Example Domain', and then closes the browser. Which code snippet correctly does this with an assertion?
hard
A. from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com') assert driver.title = 'Example Domain' driver.quit()
B. from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com') assert driver.title == 'Example Domain' driver.quit()
C. from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com') assert driver.title != 'Example Domain' driver.quit()
D. from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com') assert driver.getTitle() == 'Example Domain' driver.quit()

Solution

  1. Step 1: Check correct assertion syntax

    In Python, assert uses '==' to compare values, so 'assert driver.title == "Example Domain"' is correct.
  2. Step 2: Verify method and property names

    driver.title is the correct property for page title; driver.getTitle() is incorrect in Python Selenium.
  3. Step 3: Confirm logic correctness

    from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com') assert driver.title == 'Example Domain' driver.quit() asserts title equals 'Example Domain', which matches the requirement.
  4. Final Answer:

    Correct assertion with driver.title == 'Example Domain' -> Option B
  5. Quick Check:

    Use assert driver.title == 'Example Domain' = A [OK]
Hint: Use assert with '==' and driver.title property [OK]
Common Mistakes:
  • Using single '=' instead of '==' in assert
  • Using driver.getTitle() instead of driver.title
  • Asserting title not equal instead of equal
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard