Bird
Raised Fist0
Selenium Pythontesting~20 mins

Running Selenium in CI pipeline in Selenium Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Selenium CI Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of Selenium WebDriver in headless mode
What will be the output when running this Selenium Python script in a CI pipeline with headless Chrome?
Selenium Python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get('https://example.com')
title = driver.title
driver.quit()
print(title)
AExample Domain
Bselenium.common.exceptions.WebDriverException
CNo output (script hangs)
DChromeDriver not found error
Attempts:
2 left
💡 Hint
Headless mode allows Chrome to run without opening a window, so the page title can still be retrieved.
❓ Troubleshoot
intermediate
2:00remaining
Fixing ChromeDriver version mismatch error in CI
In a CI pipeline, Selenium tests fail with the error: 'This version of ChromeDriver only supports Chrome version 90'. What is the best way to fix this?
ARemove the --headless argument from Chrome options
BDowngrade Selenium to an older version
CUpdate ChromeDriver to match the installed Chrome browser version
DIncrease the timeout for WebDriver initialization
Attempts:
2 left
💡 Hint
ChromeDriver and Chrome browser versions must be compatible.
❓ Configuration
advanced
2:00remaining
Configuring Selenium to run with Firefox in CI
Which configuration snippet correctly sets up Selenium WebDriver to run Firefox in headless mode in a CI pipeline?
A
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)
B
from selenium import webdriver
options = webdriver.FirefoxOptions()
options.add_argument('--headless')
driver = webdriver.Firefox(options=options)
C
from selenium import webdriver
options = webdriver.FirefoxOptions()
options.headless = True
driver = webdriver.Firefox(options=options)
D
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument('--headless')
driver = webdriver.Firefox(options=options)
Attempts:
2 left
💡 Hint
Use the correct import and method to add headless argument for Firefox.
🔀 Workflow
advanced
2:00remaining
Best CI workflow step to run Selenium tests
In a CI pipeline, which step order ensures Selenium tests run reliably with Chrome in headless mode?
ARun Selenium tests -> Install Chrome -> Install ChromeDriver -> Cleanup
BInstall Chrome -> Install ChromeDriver -> Run Selenium tests -> Cleanup
CInstall ChromeDriver -> Install Chrome -> Run Selenium tests -> Cleanup
DInstall Chrome -> Run Selenium tests -> Install ChromeDriver -> Cleanup
Attempts:
2 left
💡 Hint
Chrome and ChromeDriver must be installed before running tests.
🧠 Conceptual
expert
2:00remaining
Why use virtual display (Xvfb) in Selenium CI pipelines?
What is the main reason to use a virtual display like Xvfb when running Selenium tests in CI pipelines on Linux servers?
ATo provide a graphical environment for browsers to run without a physical display
BTo speed up browser startup time by caching display data
CTo enable running tests in parallel on multiple CPU cores
DTo automatically update browser drivers to the latest version
Attempts:
2 left
💡 Hint
Linux servers often lack a graphical desktop environment.

Practice

(1/5)
1. Why is it important to run Selenium tests in a CI pipeline?
easy
A. To slow down the deployment process
B. To automatically catch bugs early during development
C. To manually check the UI after deployment
D. To avoid writing test scripts

Solution

  1. Step 1: Understand the purpose of CI pipelines

    CI pipelines automate testing and building to catch issues early.
  2. Step 2: Relate Selenium tests to CI benefits

    Running Selenium tests in CI helps find UI bugs automatically before release.
  3. Final Answer:

    To automatically catch bugs early during development -> Option B
  4. Quick Check:

    CI + Selenium = Early bug detection [OK]
Hint: CI runs tests automatically to catch bugs early [OK]
Common Mistakes:
  • Thinking CI slows deployment
  • Believing tests run manually in CI
  • Ignoring automated testing benefits
2. Which of the following is the correct way to run Chrome in headless mode in Selenium Python?
easy
A. options.add_argument('--headless')
B. options.set_headless(True)
C. driver.headless = True
D. driver.set_option('headless')

Solution

  1. Step 1: Recall Selenium ChromeOptions usage

    To run Chrome headless, add the argument '--headless' to options.
  2. Step 2: Verify correct syntax

    Using options.add_argument('--headless') is the correct method in Selenium Python.
  3. Final Answer:

    options.add_argument('--headless') -> Option A
  4. Quick Check:

    Headless Chrome = add_argument('--headless') [OK]
Hint: Use add_argument('--headless') to enable headless mode [OK]
Common Mistakes:
  • Using non-existent methods like set_headless
  • Trying to set driver.headless directly
  • Confusing driver and options methods
3. What will be the output when running this Selenium Python snippet in a CI environment without a display server?
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get('https://example.com')
print(driver.title)
driver.quit()
medium
A. Prints 'ChromeDriver not found' error
B. Throws an error about missing display server
C. Prints an empty string
D. Prints the page title 'Example Domain'

Solution

  1. Step 1: Understand headless mode effect

    Headless mode allows Chrome to run without a display server in CI.
  2. Step 2: Analyze code behavior

    The code opens example.com headlessly and prints the page title successfully.
  3. Final Answer:

    Prints the page title 'Example Domain' -> Option D
  4. Quick Check:

    Headless mode avoids display errors, prints title [OK]
Hint: Headless mode avoids display errors, so title prints [OK]
Common Mistakes:
  • Assuming display server is always needed
  • Expecting empty output without display
  • Confusing driver errors with headless mode
4. You added Selenium tests to your CI pipeline but they fail with the error: selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. How do you fix this?
medium
A. Install ChromeDriver and add it to the system PATH in the CI environment
B. Remove the ChromeDriver and use Firefox instead
C. Run tests without specifying any driver
D. Disable headless mode in Chrome options

Solution

  1. Step 1: Understand the error message

    The error says ChromeDriver is missing or not found in PATH.
  2. Step 2: Fix by installing ChromeDriver in CI

    Install ChromeDriver and ensure its location is in the PATH environment variable.
  3. Final Answer:

    Install ChromeDriver and add it to the system PATH in the CI environment -> Option A
  4. Quick Check:

    Driver missing error = install and add to PATH [OK]
Hint: Add ChromeDriver to PATH in CI to fix driver not found [OK]
Common Mistakes:
  • Ignoring driver installation
  • Switching browsers without fixing driver
  • Disabling headless mode unrelated to driver error
5. You want to run Selenium tests in a CI pipeline using Docker. Which setup ensures tests run headlessly and ChromeDriver is available inside the container?
hard
A. Run Selenium tests on host machine, not inside Docker
B. Use a plain Python image and install ChromeDriver only, no Chrome needed
C. Use a Docker image with Chrome and ChromeDriver installed, run Chrome with '--headless' option in Selenium
D. Use Firefox without headless mode inside Docker container

Solution

  1. Step 1: Identify requirements for Selenium in Docker

    Tests need both Chrome browser and ChromeDriver installed inside the container.
  2. Step 2: Choose correct Docker setup

    A Docker image with Chrome and ChromeDriver pre-installed and running Chrome headless is best practice.
  3. Final Answer:

    Use a Docker image with Chrome and ChromeDriver installed, run Chrome with '--headless' option in Selenium -> Option C
  4. Quick Check:

    Docker Selenium needs browser + driver + headless [OK]
Hint: Docker needs both Chrome and ChromeDriver installed [OK]
Common Mistakes:
  • Installing driver without browser
  • Running tests outside Docker when container needed
  • Using non-headless mode in CI Docker
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