Bird
Raised Fist0
Selenium Pythontesting~5 mins

pytest with Selenium setup in Selenium Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is pytest and why is it used with Selenium?
pytest is a testing framework for Python that helps write and run tests easily. It is used with Selenium to automate browser actions and verify web application behavior.
Click to reveal answer
beginner
How do you install pytest and Selenium in Python?
Use the command pip install pytest selenium in your terminal or command prompt to install both pytest and Selenium libraries.
Click to reveal answer
intermediate
What is a pytest fixture and how is it useful in Selenium tests?
A pytest fixture is a function that runs before a test to set up needed resources, like opening a browser. It helps reuse setup code and clean up after tests.
Click to reveal answer
intermediate
Show a simple pytest fixture example that opens and closes a Chrome browser using Selenium.
import pytest
from selenium import webdriver

@pytest.fixture
def browser():
    driver = webdriver.Chrome()
    yield driver
    driver.quit()
Click to reveal answer
intermediate
Why should you use yield in a pytest fixture for Selenium?
Using yield allows the fixture to provide the browser to the test, then run cleanup code (like closing the browser) after the test finishes.
Click to reveal answer
Which command installs pytest and Selenium for Python?
Anpm install pytest selenium
Bpip install pytest selenium
Capt-get install pytest selenium
Dpip install selenium pytest-runner
What does a pytest fixture typically do in Selenium tests?
ARuns tests in parallel
BGenerates test reports
CSets up and tears down browser sessions
DFinds elements on the page
In pytest, what keyword is used inside a fixture to pause setup and resume cleanup?
Ayield
Breturn
Cbreak
Dcontinue
Which Selenium WebDriver is used to open Chrome browser in Python?
Awebdriver.Chrome()
Bwebdriver.Edge()
Cwebdriver.Safari()
Dwebdriver.Firefox()
What is the main benefit of using pytest with Selenium?
AIt writes code for you
BIt automatically fixes bugs
CIt replaces the need for browsers
DIt helps organize and run automated browser tests easily
Explain how to set up a pytest fixture for Selenium WebDriver and why it is useful.
Think about setup and cleanup steps in tests.
You got /5 concepts.
    Describe the steps to install and run a simple Selenium test using pytest.
    Start from installation to running tests.
    You got /5 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using pytest fixtures in Selenium tests?
      easy
      A. To set up and tear down the browser before and after tests
      B. To write assertions inside the test functions
      C. To locate elements on the web page
      D. To generate test reports automatically

      Solution

      1. Step 1: Understand pytest fixtures role

        Fixtures in pytest are used to prepare the test environment and clean up after tests, such as opening and closing browsers.
      2. Step 2: Match fixture purpose with Selenium tests

        In Selenium tests, fixtures typically launch the browser before a test and close it after, ensuring clean test runs.
      3. Final Answer:

        To set up and tear down the browser before and after tests -> Option A
      4. Quick Check:

        Fixtures manage setup/cleanup = A [OK]
      Hint: Fixtures handle setup and cleanup in tests [OK]
      Common Mistakes:
      • Confusing fixtures with assertions
      • Thinking fixtures locate elements
      • Assuming fixtures generate reports
      2. Which of the following is the correct way to define a pytest fixture that opens a Chrome browser using Selenium?
      easy
      A. def browser(): driver = webdriver.Chrome() yield driver driver.quit()
      B. @pytest.fixture def browser(): driver = webdriver.Chrome() yield driver driver.quit()
      C. @pytest.test def browser(): driver = webdriver.Chrome() yield driver driver.quit()
      D. @fixture def browser(): driver = webdriver.Chrome() yield driver driver.quit()

      Solution

      1. Step 1: Identify correct pytest fixture decorator

        The correct decorator to define a fixture is @pytest.fixture.
      2. Step 2: Check function structure for setup and teardown

        The function creates a driver, yields it for test use, then quits the driver after the test.
      3. Final Answer:

        @pytest.fixture\ndef browser():\n driver = webdriver.Chrome()\n yield driver\n driver.quit() -> Option B
      4. Quick Check:

        Use @pytest.fixture for fixtures = A [OK]
      Hint: Always use @pytest.fixture decorator for fixtures [OK]
      Common Mistakes:
      • Missing @pytest.fixture decorator
      • Using wrong decorator like @pytest.test
      • Forgetting to quit the driver
      3. Given the following pytest test code, what will be the output when running the test?
      import pytest
      from selenium import webdriver
      
      @pytest.fixture
      def browser():
          driver = webdriver.Chrome()
          yield driver
          driver.quit()
      
      
      def test_google_title(browser):
          browser.get('https://www.google.com')
          assert 'Google' in browser.title
      medium
      A. Test passes if the browser opens Google and title contains 'Google'
      B. Test fails because browser.title is empty
      C. SyntaxError due to missing import
      D. RuntimeError because driver.quit() is called too early

      Solution

      1. Step 1: Analyze fixture and test function

        The fixture opens Chrome, yields the driver, and quits after test. The test navigates to Google and asserts title contains 'Google'.
      2. Step 2: Understand expected behavior

        Since Google page title contains 'Google', the assertion passes and test completes successfully.
      3. Final Answer:

        Test passes if the browser opens Google and title contains 'Google' -> Option A
      4. Quick Check:

        Title contains 'Google' means pass = B [OK]
      Hint: Check page title contains expected text for pass [OK]
      Common Mistakes:
      • Assuming title is empty before page load
      • Thinking driver.quit() runs before test
      • Missing import statements
      4. Identify the error in this pytest Selenium setup code:
      import pytest
      from selenium import webdriver
      
      @pytest.fixture
      def browser():
          driver = webdriver.Chrome()
          return driver
          driver.quit()
      
      
      def test_example(browser):
          browser.get('https://example.com')
          assert 'Example' in browser.title
      medium
      A. Assertion syntax is incorrect
      B. Missing @pytest.test decorator on test_example
      C. driver.quit() is never called because it is after return
      D. webdriver.Chrome() is not imported correctly

      Solution

      1. Step 1: Check fixture function flow

        The fixture returns driver before calling driver.quit(), so quit() never runs.
      2. Step 2: Understand impact on test

        Without quitting, browser stays open, causing resource leaks and flaky tests.
      3. Final Answer:

        driver.quit() is never called because it is after return -> Option C
      4. Quick Check:

        Code after return is ignored = D [OK]
      Hint: Put cleanup code after yield, not after return [OK]
      Common Mistakes:
      • Placing driver.quit() after return
      • Confusing @pytest.test with @pytest.fixture
      • Ignoring proper assertion syntax
      5. You want to run a Selenium test with pytest that opens Firefox, navigates to a page, and checks a button is clickable. Which pytest fixture setup is best practice to ensure browser opens and closes properly?
      hard
      A. @pytest.fixture def browser(): driver = webdriver.Firefox() driver.quit() yield driver
      B. def browser(): driver = webdriver.Firefox() return driver driver.quit()
      C. @pytest.fixture def browser(): driver = webdriver.Firefox() yield driver
      D. @pytest.fixture def browser(): driver = webdriver.Firefox() yield driver driver.quit()

      Solution

      1. Step 1: Review proper fixture structure for setup and teardown

        Best practice is to create driver, yield it for test use, then quit after test finishes.
      2. Step 2: Evaluate each option

        @pytest.fixture def browser(): driver = webdriver.Firefox() yield driver driver.quit() correctly uses yield and calls quit after test. def browser(): driver = webdriver.Firefox() return driver driver.quit() quits after return (never runs). @pytest.fixture def browser(): driver = webdriver.Firefox() driver.quit() yield driver quits before yield (browser closed too early). @pytest.fixture def browser(): driver = webdriver.Firefox() yield driver never quits browser.
      3. Final Answer:

        @pytest.fixture\ndef browser():\n driver = webdriver.Firefox()\n yield driver\n driver.quit() -> Option D
      4. Quick Check:

        Yield before quit ensures proper cleanup = C [OK]
      Hint: Yield driver, then quit after test for clean browser [OK]
      Common Mistakes:
      • Calling quit before yield
      • Not quitting browser at all
      • Using return instead of yield in fixture
      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