Python-Selenium继续使用相同的实例
我有几个问题。当我打开新的Selenium实例时,我希望继续处理相同的实例,但不同的请求 例如:当我打开此url并让用户登录时,之后我想继续使用相同的实例或会话不同的方法 Mymain.py代码:Python-Selenium继续使用相同的实例,python,selenium,Python,Selenium,我有几个问题。当我打开新的Selenium实例时,我希望继续处理相同的实例,但不同的请求 例如:当我打开此url并让用户登录时,之后我想继续使用相同的实例或会话不同的方法 Mymain.py代码: import test2 from flask import Flask, jsonify, request app = Flask(__name__) object = test2.ExampleClass() @app.route('/login', methods=['GET']) def
import test2
from flask import Flask, jsonify, request
app = Flask(__name__)
object = test2.ExampleClass()
@app.route('/login', methods=['GET'])
def login():
slug = request.args.get("slug")
data = object.welcome()
return jsonify(data)
@app.route('/tutorials', methods=['GET'])
def tutorials():
method = request.args.get("method")
data = object.tutorials()
return jsonify(data)
@app.route('/exit', methods=['GET'])
def exit():
data = object.exit()
return jsonify(data)
if __name__ == '__main__':
port = 8001
app.run(host='0.0.0.0', port=port)
还有我的Selenium实例:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from flask import request
import time, logging
import shutil
class ExampleClass():
stage = "welcome"
token = ""
def __init__(self):
pathChrome = "/Users/user/Downloads/chromedriver 2"
self.driver = webdriver.Chrome(executable_path=pathChrome)
self.driver.get("https://example.com/login")
def welcome(self):
identity = request.args.get("identity")
password = request.args.get("password")
self.token = request.args.get("token")
driver = self.driver
try:
customer_field = driver.find_element_by_id("txtuserid")
customer_field.clear()
customer_field.send_keys(identity)
except NoSuchElementException:
logging.warning('txtuserid ID not found!')
data = {"stage": "welcome", "status": 500, "error": "You got error!"}
return data
try:
password_field = driver.find_element_by_id("txtpass")
password_field.clear()
password_field.send_keys(password)
except NoSuchElementException:
logging.warning('txtpass ID not found!')
data = {"stage": "welcome", "status": 500, "error": "You got error!"}
return data
data = {"stage": self.stage, "status": 200}
driver.save_screenshot(filename="ss/" + str(self.token) + "/login" + ".png")
return data
def tutorials(self):
page = request.args.get("page")
driver = self.driver
try:
page_field = driver.find_element_by_id("pageId")
page_field.clear()
page_field.send_keys(page)
except NoSuchElementException:
logging.warning('pageId ID not found!')
data = {"stage": "welcome", "status": 500, "error": "You got error!"}
return data
data = {"stage": self.stage, "status": 200}
driver.save_screenshot(filename="ss/" + str(self.token) + "/tutorials" + ".png")
return data
def exit(self):
driver = self.driver
driver.switch_to.default_content()
exit_field = driver.find_element_by_id("btnExit")
exit_field.click()
data = {"stage": "exited", "status": 200}
driver.save_screenshot(filename="ss/" + str(self.token) + "/exit" + ".png")
shutil.rmtree("ss/" + self.token)
driver.quit()
return data
如何继续使用同一实例直到退出
提前谢谢你 所以我认为你需要定义你的 self.driver=webdriver.Chrome(可执行文件路径=pathcrome)
在main中,每次调用示例类时,都将驱动程序作为参数传递。因此我认为您需要定义 self.driver=webdriver.Chrome(可执行文件路径=pathcrome) 在main中,每次调用示例类时,都将驱动程序作为参数传递