Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- from selenium.webdriver.chrome.options import Options
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from bs4 import BeautifulSoup
- import time
- def login_and_fetch_grade(course_var, grade_type):
- # Headless mode options for invisible process
- options = Options()
- options.add_argument('--headless') # Keeps browser hidden
- options.add_argument('--disable-gpu')
- # Path to your WebDriver (ensure you have ChromeDriver installed)
- driver = webdriver.Chrome(options=options)
- try:
- # Step 1: Open the login page (SAML)
- driver.get("https://evansvilledayschool.instructure.com/login/saml")
- print("Opened SAML login page...")
- # Step 2: Wait for the login to complete (manual or automatic)
- # Increase wait time to give you time to log in manually if needed
- time.sleep(20) # Adjust this based on your SAML login time
- # Debug: Check if we're logged in by printing current page title
- print("Current page title after login:", driver.title)
- # Step 3: Navigate to the course-specific grades page
- grade_url = f"https://evansvilledayschool.instructure.com/courses/{course_var}/grades"
- driver.get(grade_url)
- print(f"Navigating to {grade_type} grades page...")
- # Step 4: Wait for the page to load
- WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "grade")))
- # Debug: Check page source to see if the grade is present
- print("Page loaded, fetching page content...")
- # Step 5: Parse the page source to find the grade
- soup = BeautifulSoup(driver.page_source, 'html.parser')
- grade_span = soup.find("span", class_="grade")
- if grade_span:
- grade_percentage = grade_span.text.strip()
- print(f"{grade_type} grade: {grade_percentage}")
- else:
- print(f"{grade_type} grade not found!")
- except Exception as e:
- print(f"An error occurred: {e}")
- finally:
- # Step 6: Close the browser (invisible process ends)
- driver.quit()
- # Example usage:
- course_var = input("946: ")
- grade_type = input(MathGrades: ")
- login_and_fetch_grade(course_var, grade_type)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement