Advertisement
EdmundC

grade

Sep 22nd, 2024 (edited)
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.36 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.chrome.options import Options
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.support.ui import WebDriverWait
  5. from selenium.webdriver.support import expected_conditions as EC
  6. from bs4 import BeautifulSoup
  7. import time
  8.  
  9. def login_and_fetch_grade(course_var, grade_type):
  10.     # Headless mode options for invisible process
  11.     options = Options()
  12.     options.add_argument('--headless')  # Keeps browser hidden
  13.     options.add_argument('--disable-gpu')
  14.  
  15.     # Path to your WebDriver (ensure you have ChromeDriver installed)
  16.     driver = webdriver.Chrome(options=options)
  17.  
  18.     try:
  19.         # Step 1: Open the login page (SAML)
  20.         driver.get("https://evansvilledayschool.instructure.com/login/saml")
  21.         print("Opened SAML login page...")
  22.  
  23.         # Step 2: Wait for the login to complete (manual or automatic)
  24.         # Increase wait time to give you time to log in manually if needed
  25.         time.sleep(20)  # Adjust this based on your SAML login time
  26.  
  27.         # Debug: Check if we're logged in by printing current page title
  28.         print("Current page title after login:", driver.title)
  29.  
  30.         # Step 3: Navigate to the course-specific grades page
  31.         grade_url = f"https://evansvilledayschool.instructure.com/courses/{course_var}/grades"
  32.         driver.get(grade_url)
  33.         print(f"Navigating to {grade_type} grades page...")
  34.  
  35.         # Step 4: Wait for the page to load
  36.         WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "grade")))
  37.  
  38.         # Debug: Check page source to see if the grade is present
  39.         print("Page loaded, fetching page content...")
  40.  
  41.         # Step 5: Parse the page source to find the grade
  42.         soup = BeautifulSoup(driver.page_source, 'html.parser')
  43.         grade_span = soup.find("span", class_="grade")
  44.  
  45.         if grade_span:
  46.             grade_percentage = grade_span.text.strip()
  47.             print(f"{grade_type} grade: {grade_percentage}")
  48.         else:
  49.             print(f"{grade_type} grade not found!")
  50.  
  51.     except Exception as e:
  52.         print(f"An error occurred: {e}")
  53.  
  54.     finally:
  55.         # Step 6: Close the browser (invisible process ends)
  56.         driver.quit()
  57.  
  58. # Example usage:
  59. course_var = input("946: ")
  60. grade_type = input(MathGrades: ")
  61. login_and_fetch_grade(course_var, grade_type)
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement