python - 用于 selenium 浏览器自动化的 Flask Web 应用程序输入

标签 python selenium flask web automation

我有一个简单的 Flask 网络应用程序,用于登录我的电力公司
仪表板。我有一个页面叫 essentials .必需品页面有一个
表单设置,供用户输入。

from flask import Flask, render_template, request 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By import time

app = Flask(__name__)
@app.route('/') 
def home():
    return render_template('home.html')

@app.route('/essentials') 
def essentials():
    return render_template('essentials.html')

@app.route('/form', methods=['POST']) 
def form():
    username = request.form.get("user_name")
    password = request.form.get("password") 

if __name__ == '__main__':
    app.run(debug=True)
然后我有一些 Selenium 代码用于自动填写用户身份验证表单:
driver = webdriver.Safari()
driver.set_window_size(1100, 800)

driver.get('https://www.firstenergycorp.com/content/customer/jersey_central_power_light.html')
    
username = 
password = 
    
    
driver.find_element_by_id('loginUsername').send_keys(username)
driver.find_element_by_id('loginPwd').send_keys(password)
driver.find_element_by_id('loginPwd').send_keys(Keys.RETURN)
time.sleep(7)
问题:在这种情况下,我如何将 Flask 表单 Web 用户输入(用户名、密码)传递给 selenium 变量 usernamepassword然后它将用于自动化部分?

最佳答案

如果您使用方法 POST 提交表单,然后你可以试试这个

@app.route('/form', methods=['GET', 'POST']) 
def form():
    if flask.request.method == 'POST':
        username = request.form.get("user_name")
        password = request.form.get("password") 
        
        driver = webdriver.Safari()
        driver.set_window_size(1100, 800)

        driver.get('https://www.firstenergycorp.com/content/customer/jersey_central_power_light.html')

        driver.find_element_by_id('loginUsername').send_keys(username)
        driver.find_element_by_id('loginPwd').send_keys(password)
        driver.find_element_by_id('loginPwd').send_keys(Keys.RETURN)
        time.sleep(7)
    
    else:
        # what do you want to display if method is not "post"

引用:
  • Flask docs
  • Handling GET and POST in same Flask view
  • Flask example with POST
  • 关于python - 用于 selenium 浏览器自动化的 Flask Web 应用程序输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64129208/

    相关文章:

    python - Flask 和 HTML 表单的 400 错误请求

    javascript - 如何使用 Selenium 和 Java 处理 JavaScript 弹出窗口?

    python - 我怎样才能在 flask 中调整谷歌地图的大小?

    Python:使用 matplotlib 绘制 x-y 图

    python - BeautifulSoup :Scrape Table Data

    javascript - 如何从网页中抓取 `window.initialState`?

    python - 使用 Selenium Python 提取 "text"的问题

    forms - Flask 管理员将过滤器全部应用为 "Advanced Search"

    python - 读取海量图像数据来训练分类器

    python - 如何在Python中有效地将子字典转换为矩阵