我有几个问题。当我打开新的Selenium实例时,我希望继续使用相同的实例,但请求不同。
例如:当我打开此url https://example.com/login?token=1231232h31g23g123 和用户登录时,之后我想继续相同的实例或会话不同的方法。
我的main.py代码:
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)
和我的硒实例:
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(executable _ path = path chrome)
在您的main中,每次调用示例类时,您都将驱动程序作为参数传递。
我正在尝试使用本教程从一个使用selenium and beautiful soup的站点提取房地产列表信息:https://medium.com/@ben.sturm/scraping-house-listing-data-using-Selenium-and-Beautiful Soup-1CBB94BA9492 目的是在找到“下一页”按钮之前收集第一页的所有href链接,导航到下一页并收集该
我正在使用sublime来编写python脚本,下面的代码是为python中的硒使用webdriver_manager包自动安装驱动程序 代码运行良好,但我得到了类似的警告 如何修复这样的错误?
我尝试使用xpath和classname来定位并单击按钮。然而,什么都不管用。 driver.find_element(By.XPATH,“//button[@class='sc-cqCuEk ffSPoi MuiButtonBase root sc dliRfk hLpdQI MuiAccordionSummary root Mui展开的MuiAccountionSummarygutters s
我试图选择和控制www.ziprecruiter.com网站上的下拉菜单使用硒称为半径。因为我是初学者,我似乎不明白为什么我不能控制这个下拉半径菜单。我尝试使用查找ID,名称,Xpath和选择,但似乎没有工作。我想在半径下拉菜单中选择选项“25英里”,有什么想法吗?
我正在尝试点击图中所示的下拉菜单 这就是我尝试过的 但它给了我这个错误 NoSuchElementException: Message:找不到element://div[@ class = ' choosed-container choosed-container-single ']//a[@ class = ' choosed-single choosed-single-with-deselec
我正在运行Ubuntu 18.04。 我使用mysql连接器-python连接Python到MySQL。 我使用的是Python 3.6.7,并且已经安装了mysql连接器-python。 我已经安装了mysql连接器-python-py3_8.0.13-1ubuntu18.10_all.deb. 在运行Python脚本时,mysql。连接器模块似乎加载正确,但脚本在碰到光标时失败。next()具