Bird
Raised Fist0
Selenium Pythontesting~10 mins

File download handling in Selenium Python - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set the download directory in Selenium WebDriver.

Selenium Python
options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {'download.default_directory': [1])
Drag options to blanks, or click blank then click option'
ANone
BTrue
C'/path/to/downloads'
D8080
Attempts:
3 left
💡 Hint
Common Mistakes
Using a boolean or number instead of a string path.
Not quoting the path string.
2fill in blank
medium

Complete the code to wait until the file is downloaded by checking the file existence.

Selenium Python
import os
import time
file_path = '/path/to/downloads/file.txt'
while not os.path.exists([1]):
    time.sleep(1)
Drag options to blanks, or click blank then click option'
Afile_path
B'file.txt'
Cfile
Dos.path
Attempts:
3 left
💡 Hint
Common Mistakes
Passing just the filename instead of full path.
Passing the module os.path instead of a string.
3fill in blank
hard

Fix the error in the code that sets Chrome options for automatic download without prompt.

Selenium Python
options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', [1])
driver = webdriver.Chrome(options=options)
Drag options to blanks, or click blank then click option'
AFalse
B['download.prompt_for_download', False]
C('download.prompt_for_download', False)
D{'download.prompt_for_download': False}
Attempts:
3 left
💡 Hint
Common Mistakes
Using a list or tuple instead of a dictionary.
Passing just a boolean instead of a dictionary.
4fill in blank
hard

Fill both blanks to create a function that waits for a file to be fully downloaded by checking file size stability.

Selenium Python
def wait_for_download(file_path):
    import os, time
    last_size = -1
    while True:
        current_size = os.path.getsize([1])
        if current_size == last_size:
            break
        last_size = current_size
        time.sleep([2])
Drag options to blanks, or click blank then click option'
Afile_path
Bfile
C1
D0.1
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong variable name for file path.
Using too short or missing sleep causing high CPU usage.
5fill in blank
hard

Fill all three blanks to configure Firefox profile for automatic file download of PDFs without prompt.

Selenium Python
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', [1])
profile.set_preference('browser.download.dir', [2])
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', [3])
driver = webdriver.Firefox(firefox_profile=profile)
Drag options to blanks, or click blank then click option'
A2
B'/path/to/downloads'
C'application/pdf'
DTrue
Attempts:
3 left
💡 Hint
Common Mistakes
Using folderList 1 or 0 which do not allow custom folder.
Not specifying the correct MIME type string.

Practice

(1/5)
1. What is the main purpose of setting browser preferences in Selenium for file downloads?
easy
A. To specify the folder where downloaded files are saved automatically
B. To speed up the browser loading time
C. To change the browser's theme
D. To disable JavaScript on the page

Solution

  1. Step 1: Understand browser preferences role

    Browser preferences let you control how downloads behave, like where files save.
  2. Step 2: Identify the correct purpose

    Setting preferences to specify download folder avoids manual prompts and saves files automatically.
  3. Final Answer:

    To specify the folder where downloaded files are saved automatically -> Option A
  4. Quick Check:

    Download folder control = A [OK]
Hint: Remember: preferences set download folder and disable prompts [OK]
Common Mistakes:
  • Thinking preferences speed up browser loading
  • Confusing download folder with browser theme
  • Assuming preferences disable JavaScript
2. Which of the following is the correct way to set Firefox preferences in Selenium to automatically download PDF files to a folder without prompt?
easy
A. profile.set_preference('browser.download.folderList', '2')
B. profile.set_preference('browser.download.folderList', 2)
C. profile.set_preference('browser.download.folderList', True)
D. profile.set_preference('browser.download.folderList', None)

Solution

  1. Step 1: Recall Firefox preference for download folder

    The 'browser.download.folderList' preference expects an integer: 0 (desktop), 1 (default), 2 (custom folder).
  2. Step 2: Choose correct data type and value

    Using integer 2 sets a custom folder; string or other types cause errors.
  3. Final Answer:

    profile.set_preference('browser.download.folderList', 2) -> Option B
  4. Quick Check:

    Integer 2 for custom folder = B [OK]
Hint: Use integer 2, not string, for custom download folder [OK]
Common Mistakes:
  • Passing '2' as string instead of integer
  • Using boolean True instead of integer
  • Passing None which disables setting
3. Given this Selenium Python code snippet, what will be the output if the file is downloaded successfully?
import os
from selenium import webdriver

options = webdriver.FirefoxOptions()
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.dir', '/tmp/downloads')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
driver = webdriver.Firefox(firefox_profile=profile, options=options)
driver.get('http://example.com/sample.pdf')

file_path = '/tmp/downloads/sample.pdf'
print(os.path.exists(file_path))
medium
A. True
B. False
C. SyntaxError
D. FileNotFoundError

Solution

  1. Step 1: Analyze download setup

    Preferences set to save PDF automatically to '/tmp/downloads'.
  2. Step 2: Check file existence print

    After download, os.path.exists returns True if file is present.
  3. Final Answer:

    True -> Option A
  4. Quick Check:

    File exists after download = True [OK]
Hint: os.path.exists returns True if file is saved correctly [OK]
Common Mistakes:
  • Assuming print outputs file path string
  • Expecting False without download
  • Confusing syntax or runtime errors
4. Identify the error in this Selenium Python code for downloading a CSV file:
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.dir', '/tmp/downloads')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv')
driver = webdriver.Firefox(profile)
driver.get('http://example.com/data.csv')
medium
A. Missing options parameter in webdriver.Firefox()
B. Download folder path must be absolute
C. Incorrect argument name; should be firefox_profile=profile
D. Wrong MIME type for CSV files

Solution

  1. Step 1: Check webdriver.Firefox() usage

    Firefox expects profile passed as firefox_profile=profile, not just profile.
  2. Step 2: Confirm other settings

    MIME type 'text/csv' and folder path are correct; no options parameter needed here.
  3. Final Answer:

    Incorrect argument name; should be firefox_profile=profile -> Option C
  4. Quick Check:

    Use firefox_profile=profile argument = D [OK]
Hint: Pass profile with firefox_profile=profile keyword [OK]
Common Mistakes:
  • Passing profile as positional argument
  • Changing MIME type unnecessarily
  • Using relative folder path
5. You want to verify that a file named 'report.xlsx' has been downloaded successfully using Selenium Python. Which approach is best to confirm the download in an automated test?
hard
A. Check the page source for the file name
B. Check the browser's download history via Selenium API
C. Wait for an alert popup confirming download
D. Use os.path.exists() to check the file in the download folder

Solution

  1. Step 1: Understand Selenium's download verification limits

    Selenium cannot access browser download history or alerts for downloads.
  2. Step 2: Use file system check

    Checking file existence with os.path.exists() in the download folder confirms the file saved.
  3. Final Answer:

    Use os.path.exists() to check the file in the download folder -> Option D
  4. Quick Check:

    File system check confirms download = A [OK]
Hint: Verify downloads by checking file presence on disk [OK]
Common Mistakes:
  • Trying to read browser download history
  • Waiting for non-existent alert popups
  • Searching page source for downloaded file
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