61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
import csv
|
|
from selenium import webdriver
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.firefox.service import Service
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
from selenium.webdriver.support import expected_conditions as EC
|
|
from webdriver_manager.firefox import GeckoDriverManager
|
|
|
|
# Set up the Firefox WebDriver using Service
|
|
service = Service(GeckoDriverManager().install()) # Automatically manage geckodriver
|
|
|
|
# Set up the Firefox options (you can use headless if you want)
|
|
options = webdriver.FirefoxOptions()
|
|
|
|
# Initialize the Firefox WebDriver with the correct Service and Options
|
|
driver = webdriver.Firefox(service=service, options=options)
|
|
|
|
# URL where the form is located
|
|
url = ""
|
|
|
|
# Open the webpage
|
|
driver.get(url)
|
|
|
|
# Wait until the page is loaded and the element is present
|
|
wait = WebDriverWait(driver, 10)
|
|
|
|
# Mapping of CSV values to radio button IDs
|
|
radio_button_map = {
|
|
'individual': 'id25',
|
|
'organization': 'id27',
|
|
'professional': 'id29',
|
|
'municipality': 'id31',
|
|
'agency': 'id33'
|
|
}
|
|
|
|
# Read the CSV file
|
|
csv_file_path = "surveys/test.csv"
|
|
with open(csv_file_path, mode='r') as file:
|
|
csv_reader = csv.DictReader(file)
|
|
|
|
for row in csv_reader:
|
|
who_planted = row['Who Planted The Tree(s)?'].lower() # Convert to lowercase for consistency
|
|
|
|
# Check if the value is in the radio button map
|
|
if who_planted in radio_button_map:
|
|
radio_button_id = radio_button_map[who_planted]
|
|
try:
|
|
# Wait for the radio button to be clickable and click it
|
|
radio_button = wait.until(EC.element_to_be_clickable((By.ID, radio_button_id)))
|
|
radio_button.click()
|
|
except Exception as e:
|
|
print(f"Error selecting '{who_planted}' radio button (ID: {radio_button_id}): {e}")
|
|
else:
|
|
print(f"Unknown value in CSV: '{who_planted}', skipping...")
|
|
|
|
# Optional: Submit the form if necessary
|
|
# driver.find_element(By.ID, 'submit_button_id').click()
|
|
|
|
# Close the driver
|
|
driver.quit()
|