Bird
Raised Fist0
Selenium Pythontesting~15 mins

Python environment setup in Selenium Python - Build an Automation Script

Choose your learning style10 modes available
Verify Python Selenium environment setup by opening a browser and navigating to example.com
Preconditions (4)
Step 1: Open a terminal or command prompt
Step 2: Create a new virtual environment named 'venv' using 'python -m venv venv'
Step 3: Activate the virtual environment
Step 4: Install Selenium package using 'pip install selenium'
Step 5: Write a Python script that imports Selenium WebDriver
Step 6: In the script, initialize Chrome WebDriver with the correct path to ChromeDriver
Step 7: Use the driver to open the URL 'https://example.com'
Step 8: Verify that the page title contains the word 'Example Domain'
Step 9: Close the browser
✅ Expected Result: The script runs without errors, opens Chrome browser, navigates to https://example.com, verifies the page title contains 'Example Domain', and closes the browser
Automation Requirements - unittest with Selenium WebDriver
Assertions Needed:
Page title contains 'Example Domain'
Best Practices:
Use explicit waits if needed
Use setUp and tearDown methods for environment setup and cleanup
Use virtual environment for package isolation
Use correct ChromeDriver path
Handle exceptions gracefully
Automated Solution
Selenium Python
import unittest
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import sys

class TestPythonEnvironmentSetup(unittest.TestCase):
    def setUp(self):
        # Path to your chromedriver executable
        chromedriver_path = './chromedriver'  # Adjust path as needed
        service = Service(chromedriver_path)
        self.driver = webdriver.Chrome(service=service)
        self.driver.maximize_window()

    def test_open_example_com(self):
        self.driver.get('https://example.com')
        # Wait until title contains 'Example Domain'
        WebDriverWait(self.driver, 10).until(EC.title_contains('Example Domain'))
        title = self.driver.title
        self.assertIn('Example Domain', title, f"Page title was '{title}' but expected to contain 'Example Domain'")

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

This test script uses Python's unittest framework and Selenium WebDriver to automate the manual test case.

setUp(): Initializes the Chrome WebDriver before each test. The Service object is used to specify the path to the ChromeDriver executable. The browser window is maximized for better visibility.

test_open_example_com(): Opens https://example.com and waits explicitly up to 10 seconds for the page title to contain 'Example Domain'. Then it asserts that the title contains the expected text.

tearDown(): Closes the browser after the test to clean up resources.

This structure ensures environment setup and cleanup are handled properly, and the assertion verifies the environment is correctly set up to run Selenium tests.

Common Mistakes - 4 Pitfalls
Not activating the virtual environment before installing Selenium
Using hardcoded absolute paths for ChromeDriver without considering different machines
Not waiting for the page to load or title to be present before asserting
Not closing the browser after test execution
Bonus Challenge

Now add data-driven testing to open three different URLs and verify their titles

Show Hint

Practice

(1/5)
1. What is the main purpose of creating a Python virtual environment before running Selenium tests?
easy
A. To speed up the browser during tests
B. To isolate project dependencies and avoid conflicts
C. To automatically write test scripts
D. To increase the screen resolution for testing

Solution

  1. Step 1: Understand virtual environment purpose

    A virtual environment keeps project packages separate from global Python packages.
  2. Step 2: Relate to Selenium testing

    This isolation prevents conflicts between different projects' dependencies, ensuring stable tests.
  3. Final Answer:

    To isolate project dependencies and avoid conflicts -> Option B
  4. Quick Check:

    Virtual environment = isolate dependencies [OK]
Hint: Virtual env keeps packages separate to avoid conflicts [OK]
Common Mistakes:
  • Thinking virtual env speeds up browser
  • Assuming it writes test scripts automatically
  • Believing it changes screen resolution
2. Which command correctly activates a Python virtual environment named venv on Windows?
easy
A. activate venv
B. source venv/bin/activate
C. venv\Scripts\activate
D. python -m venv activate

Solution

  1. Step 1: Identify Windows activation command

    On Windows, virtual environments activate with venv\Scripts\activate.
  2. Step 2: Compare other options

    source venv/bin/activate is for Unix/Linux; others are incorrect syntax.
  3. Final Answer:

    venv\Scripts\activate -> Option C
  4. Quick Check:

    Windows activate = venv\Scripts\activate [OK]
Hint: Windows uses backslash path for activate script [OK]
Common Mistakes:
  • Using Unix command on Windows
  • Typing activate without path
  • Confusing venv creation with activation
3. Given this code snippet run inside an activated virtual environment:
import selenium
print(selenium.__version__)

What will happen if Selenium is not installed in this environment?
medium
A. It raises a ModuleNotFoundError
B. It prints the Selenium version number
C. It prints 'None' and continues
D. It installs Selenium automatically

Solution

  1. Step 1: Understand import behavior

    If a module is not installed, Python raises ModuleNotFoundError on import.
  2. Step 2: Check code effect

    Since Selenium is missing, import selenium fails with error, no print occurs.
  3. Final Answer:

    It raises a ModuleNotFoundError -> Option A
  4. Quick Check:

    Missing module import = ModuleNotFoundError [OK]
Hint: Missing module import causes ModuleNotFoundError [OK]
Common Mistakes:
  • Expecting automatic install
  • Thinking it prints None
  • Assuming version prints without error
4. You tried to activate your virtual environment on Linux using venv\Scripts\activate but got an error. What is the likely problem?
medium
A. Python not installed
B. Virtual environment not created
C. Selenium not installed
D. Using Windows path on Linux

Solution

  1. Step 1: Identify path style mismatch

    Linux uses forward slashes and venv/bin/activate, not Windows backslashes.
  2. Step 2: Understand error cause

    Using Windows path on Linux causes 'file not found' error when activating.
  3. Final Answer:

    Using Windows path on Linux -> Option D
  4. Quick Check:

    Linux activate path uses forward slashes [OK]
Hint: Linux uses forward slashes, not Windows backslashes [OK]
Common Mistakes:
  • Assuming virtual env not created
  • Blaming Python installation
  • Confusing Selenium install with activation
5. You want to run Selenium tests in a new project. Which sequence of commands correctly sets up your Python environment and installs Selenium?
hard
A. python -m venv env; source env/bin/activate; pip install selenium
B. pip install selenium; python -m venv env; source env/bin/activate
C. source env/bin/activate; python -m venv env; pip install selenium
D. pip install selenium; source env/bin/activate; python -m venv env

Solution

  1. Step 1: Create virtual environment first

    Use python -m venv env to create isolated environment.
  2. Step 2: Activate environment before installing packages

    Activate with source env/bin/activate so pip installs inside it.
  3. Step 3: Install Selenium inside activated environment

    Run pip install selenium to add Selenium only to this project.
  4. Final Answer:

    python -m venv env; source env/bin/activate; pip install selenium -> Option A
  5. Quick Check:

    Create, activate, then install Selenium [OK]
Hint: Create env, activate it, then install Selenium [OK]
Common Mistakes:
  • Installing Selenium before activating env
  • Activating before creating env
  • Skipping environment creation
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