0
0
Selenium Pythontesting~20 mins

HTML report generation in Selenium Python - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
HTML Report Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Selenium HTML report generation snippet
What will be the output status in the generated HTML report after running this Selenium test code snippet?
Selenium Python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import unittest
from HtmlTestRunner import HTMLTestRunner

class TestGoogleSearch(unittest.TestCase):
    def setUp(self):
        options = Options()
        options.add_argument('--headless')
        self.driver = webdriver.Chrome(options=options)

    def test_search(self):
        self.driver.get('https://www.google.com')
        search_box = self.driver.find_element(By.NAME, 'q')
        search_box.send_keys('OpenAI')
        search_box.submit()
        WebDriverWait(self.driver, 10).until(
            EC.title_contains('OpenAI')
        )
        self.assertIn('OpenAI', self.driver.title)

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

if __name__ == '__main__':
    unittest.main(testRunner=HTMLTestRunner(output='reports'))
ATest fails because the search box locator is incorrect, and the report shows one failed test.
BTest passes and the HTML report shows one passed test with no errors.
CTest raises a TimeoutException and the report shows an error in the test execution.
DTest passes but the HTML report is not generated due to missing output directory.
Attempts:
2 left
💡 Hint
Check if the locator and wait condition match the page behavior and if the HTMLTestRunner output folder is specified.
assertion
intermediate
1:30remaining
Correct assertion for verifying HTML report content
Which assertion correctly verifies that the generated HTML report contains the text 'Tests run: 1' indicating one test was executed?
Selenium Python
with open('reports/TestGoogleSearch.html', 'r', encoding='utf-8') as report_file:
    report_content = report_file.read()
Aassert 'Tests run: 1' in report_content
Bassert report_content.contains('Tests run: 1')
Cassert report_content.index('Tests run: 1') > 0
Dassert report_content.find('Tests run: 1') == -1
Attempts:
2 left
💡 Hint
Use Python's 'in' keyword to check substring presence.
locator
advanced
1:30remaining
Best locator strategy for report download button in Selenium
You want to automate clicking a 'Download Report' button in the HTML report page. The button has the text 'Download Report' and a unique id 'download-btn'. Which locator is the best practice to use in Selenium for this button?
Adriver.find_element(By.CLASS_NAME, 'download-btn')
Bdriver.find_element(By.XPATH, "//button[text()='Download Report']")
Cdriver.find_element(By.CSS_SELECTOR, 'button#download-btn')
Ddriver.find_element(By.ID, 'download-btn')
Attempts:
2 left
💡 Hint
ID selectors are unique and fastest for locating elements.
🔧 Debug
advanced
2:00remaining
Debugging missing HTML report generation
A Selenium test run with HTMLTestRunner does not generate any HTML report files. Which is the most likely cause?
AThe output folder path passed to HTMLTestRunner does not exist and is not created automatically.
BThe test cases have syntax errors preventing execution.
CThe test methods are not prefixed with 'test_'
DThe test runner is not called with unittest.main()
Attempts:
2 left
💡 Hint
Check if the output directory exists before running tests.
framework
expert
3:00remaining
Configuring parallel test execution with HTML report generation
You want to run multiple Selenium tests in parallel using unittest and generate a single consolidated HTML report. Which approach is correct?
AUse unittest's built-in parallel execution with HTMLTestRunner; it merges reports automatically.
BUse threading in test code and write custom code to combine HTML reports after execution.
CRun tests in parallel with a third-party runner like pytest-xdist and generate separate HTML reports, then merge manually.
DRun tests sequentially to avoid report conflicts; HTMLTestRunner does not support parallel runs.
Attempts:
2 left
💡 Hint
Consider limitations of unittest and HTMLTestRunner with parallel execution.