Как связать уникальный сеанс Selenium с пользователем Flask - PullRequest
0 голосов
/ 17 января 2019

Я создаю веб-приложение, чтобы упростить / ускорить вход в систему и запись часов для моей работы в школах. У меня есть класс, который я написал, что при инициализации запускается драйвер селена без головы и содержит методы для навигации по веб-сайту, который используется для регистрации часов и т. Д. Код работает для одного пользователя одновременно, который использует внешний интерфейс колбы. Проблема в том, что когда несколько пользователей заходят на сайт, все они используют один и тот же веб-драйвер, что делает невозможным выполнение задачи. Как я могу назначить один веб-драйвер для каждого посетителя сайта.

Пока я не смотрел в Интернете, я видел людей, которые говорили о сессиях и менеджерах многопроцессорных систем. Но я не уверен, подходит ли это моему варианту использования. Это код до сих пор

#initializes Flask App
app = Flask(__name__) 
# Starts the webdriver goes to website
x=TimeLogger()  
@app.route("/home", methods=['GET',])
def home():
    return render_template("login.html")
@app.route("/login",methods=['POST'])
def login():
    x.user = request.form['user']
    x.passw = request.form['pass']
    # uses driver to login in to site
    x.webLogin() 
    # pulls avaible jobs from site using driver
    jobs = x.showJobs()  
    return render_template("submitHours.html",jobs = jobs)
@app.route("/done", methods=['POST'])
def done():
    # Selects element for desired job
    x.selectJob(int(request.form['workplace'])+1)  
    date = request.form["day"].split("-")
    dateP = datetime.date(int(date[0]),int(date[1]),int(date[2]))
    #Selects month day and enters horus
    x.selectMonth(dateP.month)
    x.goToDay(dateP)
    x.enterHours(request.form['hours'])
    #closes webdriver
    x.close()
    #Restarts for next use
    x.__init__()
    return render_template("login.html")
...