Сеанс не создан: эта версия chromedriver поддерживает только версию [] - PullRequest
1 голос
/ 03 апреля 2020
from selenium import webdriver
import time
import datetime
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
import tkinter as tk

#GUI Set-Up
class Class_Selector:

def __init__(self,window):
    window.title('Class Selector Bot')

    #Information
    self.url = 'https://buzzport.gatech.edu/'
    self.browser=self.setup()


    canvas=tk.Canvas(window,height=300,width=400)
    canvas.pack()

    frame = tk.Frame(window,bg='black')
    frame.place(relwidth=1,relheight=1)

    labeltitle = tk.Label(frame,text='Class Selector Bot',bg='yellow')
    labeltitle.place(relx=0.35,rely=0,relwidth=0.35,relheight=0.125)

    label1=tk.Label(frame,text='Buzzport Username',bg='yellow')
    label1.place(relx=0.05, rely=0.2,relwidth=0.4,relheight=0.125)

    self.entry1=tk.Entry(frame)
    self.entry1.place(relx=0.5,rely=0.2,relwidth=0.45,relheight=0.125)
    self.username = self.entry1.get()

    label2=tk.Label(frame,text='Buzzport Password',bg='yellow')
    label2.place(relx=0.05, rely=0.3,relwidth=0.4,relheight=0.125)

    self.entry2=tk.Entry(frame)
    self.entry2.place(relx=0.5,rely=0.3,relwidth=0.45,relheight=0.125)
    self.password = self.entry2.get()

    label3=tk.Label(frame,text='Duo Passcode',bg='yellow')
    label3.place(relx=0.05, rely=0.4,relwidth=0.4,relheight=0.125)

    self.entry3=tk.Entry(frame)
    self.entry3.place(relx=0.5,rely=0.4,relwidth=0.45,relheight=0.125)
    self.passcode = self.entry3.get()

    label4=tk.Label(frame,text='Course ID',bg='yellow')
    label4.place(relx=0.05,rely=0.6,relwidth=0.4,relheight=0.125)

    self.entry4=tk.Entry(frame)
    self.entry4.place(relx=0.5,rely=0.6,relwidth=0.45,relheight=0.075)
    self.cid1=self.entry4.get()

    self.entry5 = tk.Entry(frame)
    self.entry5.place(relx=0.5, rely=0.675, relwidth=0.45, relheight=0.075)
    self.cid2 = self.entry5.get()

    self.entry6 = tk.Entry(frame)
    self.entry6.place(relx=0.5, rely=0.75, relwidth=0.45, relheight=0.075)
    self.cid3 = self.entry6.get()

    run_button=tk.Button(frame,text='Run',command= lambda : self.login())
    run_button.place(relx=0.4,rely=0.9,relwidth=0.2,relheight=0.100)



#Browser Set-up
def setup(self):
    browser = webdriver.Chrome()
    #browser=webdriver.Chrome() but with added specifications (Launches Browser)
    print('Opening Browser')
    browser.get(self.url)
    print('Opening site '+str(self.url))
    browser.maximize_window()
    print('Maximizing window')
    return browser

def login(self):
    self.username = self.entry1.get()
    self.password = self.entry2.get()
    self.passcode = self.entry3.get()
    self.cid1=self.entry4.get()
    self.cid2 = self.entry5.get()
    self.cid3 = self.entry6.get()



    try:
        self.browser.find_element_by_xpath("//input[@type='button']").click()
    except:
        print('Not in original page')
    self.browser.find_element_by_xpath("//input[@id='username']").send_keys(self.username)
    self.browser.find_element_by_xpath("//input[@id='password']").send_keys(self.password)
    self.browser.find_element_by_xpath("//input[@class='button btn-submit']").click()

    print('Transferring to Duo Security Check')
    time.sleep(2)
    self.browser.switch_to.frame(self.browser.find_element_by_xpath("//iframe[@id='duo_iframe']"))
    print('Found duo instance frame')
    try:
        self.browser.find_element_by_xpath("//button[@class='btn-cancel']").click()
    except:
        print('No cancel button')

    self.browser.find_element_by_xpath("//button[@id='passcode']").click()
    self.browser.find_element_by_xpath("//input[@class='passcode-input']").send_keys(self.passcode)
    self.browser.find_element_by_xpath("//button[@id='passcode']").click()
    time.sleep(5)

    try:
        self.browser.find_element_by_xpath("//button[@class='auth-button positive']").click()
        time.sleep(10)
    except:
        print('push not needed')



    time.sleep(5)
    print('Logging into Buzzport')
    self.browser.get(str(self.url) + '')
    print('Going to class selector page')
    self.browser.get('https://oscar.gatech.edu/pls/bprod/twbkwbis.P_GenMenu?name=bmenu.P_StuMainMnu')
    self.browser.get('https://oscar.gatech.edu/pls/bprod/twbkwbis.P_GenMenu?name=bmenu.P_RegMnu')
    self.browser.get('https://oscar.gatech.edu/pls/bprod/bwskfreg.P_AltPin')
    self.browser.find_element_by_xpath("//select[@name='term_in']").click()
    self.browser.find_element_by_xpath("//option[@value='201908']").click()

    WebDriverWait(self.browser, 3000).until(EC.presence_of_element_located((By.XPATH, "")))
    print('Submit button pressed')

    try:
        self.browser.find_element_by_xpath("//input[@id='crn_id1']").send_keys(self.cid1)
        self.browser.find_element_by_xpath("//input[@id='crn_id2']").send_keys(self.cid2)
        self.browser.find_element_by_xpath("//input[@id='crn_id3']").send_keys(self.cid3)
        self.browser.find_element_by_xpath("//input[@value='Submit Changes']").click()
    except:
        print('Page not found')

   root=tk.Tk()

   class_selector=Class_Selector(root)

   root.mainloop()

Я уже некоторое время пытаюсь решить эту проблему, но я не нашел способа ее решения. Я несколько раз пытался переустановить самую последнюю версию webdriver, а также установить разные версии. Я также видел другие форумы, обсуждающие эту проблему, но я не понимаю, как выполнить решения, которые они объясняют (у меня никогда не было класса для python, что, вероятно, поэтому; полностью самоучка). Если бы кто-нибудь мог помочь мне обойти эту ошибку, это было бы очень ценно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...