Bird
Raised Fist0
Selenium Pythontesting~8 mins

Python environment setup in Selenium Python - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Python environment setup
Folder Structure
selenium-python-project/
├── tests/
│   ├── test_login.py
│   └── test_search.py
├── pages/
│   ├── login_page.py
│   └── search_page.py
├── utils/
│   └── helpers.py
├── config/
│   ├── config.yaml
│   └── credentials.yaml
├── drivers/
│   └── chromedriver.exe (or chromedriver for Mac/Linux)
├── requirements.txt
├── pytest.ini
└── conftest.py
  
Test Framework Layers
  • Driver Layer: Manages browser drivers (e.g., ChromeDriver) to control browsers.
  • Page Objects: Python classes representing web pages with methods to interact with page elements.
  • Tests: Test scripts using pytest that call page objects to perform actions and assertions.
  • Utilities: Helper functions for common tasks like waits, logging, or data handling.
  • Configuration: Files storing environment settings, URLs, credentials, and browser options.
Configuration Patterns

Use config.yaml to store environment URLs and browser settings. Use credentials.yaml to keep usernames and passwords safe and separate from code.

Use pytest.ini to configure pytest options like markers and test paths.

Use conftest.py to define fixtures that setup and teardown browser sessions and load config data.

Example config.yaml snippet:

environment:
  base_url: "https://example.com"
browser: "chrome"
  
Test Reporting and CI/CD Integration

Use pytest built-in reporting with options for verbose output and junit XML reports.

Integrate with CI/CD tools like GitHub Actions or Jenkins to run tests automatically on code changes.

Example pytest command for reports:

pytest tests/ --junitxml=reports/results.xml -v
  

Reports help quickly see which tests passed or failed after each run.

Best Practices
  • Keep browser drivers in a dedicated drivers/ folder and update them regularly.
  • Separate test data and credentials from code using config files and environment variables.
  • Use pytest fixtures in conftest.py for reusable setup and teardown logic.
  • Organize tests and page objects clearly to keep code easy to maintain.
  • Use explicit waits in Selenium to handle dynamic page elements reliably.
Self Check

Where in this folder structure would you add a new page object for the Login page?

Key Result
Organize Python Selenium tests with clear folders for tests, page objects, config, and drivers using pytest fixtures and config files.

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