用于 selenium 浏览器自动化的 Flask 网络应用程序输入
Flask web-app input for selenium browser 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 表单网络用户输入 (用户名、密码) 传递到 selenium 变量中username
和 password
然后它将用于自动化部分?
如果您使用 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
- Flask example with POST
我有一个简单的 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 表单网络用户输入 (用户名、密码) 传递到 selenium 变量中username
和 password
然后它将用于自动化部分?
如果您使用 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
- Flask example with POST