import re from typing import Optional from playwright.sync_api import Playwright, sync_playwright, expect from fastapi import Request, FastAPI from pydantic import BaseModel
app = FastAPI()
class AgentAdd(BaseModel): username: str password : str name : str email : str pno : int path : Optional[str] = None
@app.post("/AgentAdd") def post(request: Request, agentAdd: AgentAdd): # print(agentAdd.username, agentAdd.password, agentAdd.name, agentAdd.email, agentAdd.pno, agentAdd.path) def run(playwright: Playwright) -> None: browser = playwright.chromium.launch(headless=False) context = browser.new_context()
page = context.new_page()
print(agentAdd.username, agentAdd.password, agentAdd.name, agentAdd.email, agentAdd.pno,
agentAdd.path) page.goto("https://srtr.knoswlaristy.com/")
try:
page.locator("[placeholder=\"Username \\/ Email\"]").click()
username = input("Enter username : ")
page.locator("[placeholder=\"Username \\/ Email\"]").fill(agentAdd.username)
page.locator("[placeholder=\"Password\"]").click()
password = input("Enter password : ")
page.locator("[placeholder=\"Password\"]").fill(agentAdd.password)
page.locator("input:has-text(\"Login\")").click()
page.wait_for_url("https://srtr.knoswlaristy.com/")
page.locator("text=settings").click()
page.wait_for_url("https://srtr.knoswlaristy.com/#/settings")
except:
print("Incorrect Username and Password, Please Re-Enter")
page.locator("[placeholder=\"Username \\/ Email\"]").click()
username = input("Enter username : ")
page.locator("[placeholder=\"Username \\/ Email\"]").fill(agentAdd.username)
page.locator("[placeholder=\"Password\"]").click()
password = input("Enter password : ")
page.locator("[placeholder=\"Password\"]").fill(agentAdd.password)
page.locator("input:has-text(\"Login\")").click()
page.wait_for_url("https://srtr.knoswlaristy.com/")
page.locator("text=settings").click()
page.wait_for_url("https://srtr.knoswlaristy.com/#/settings")
page.locator("text=Agents").click()
try:
page.wait_for_url("https://srtr.knoswlaristy.com/#/settings/agents")
page.locator("text=MANAGE AGENTS").click()
path = input("Enter File Path : ")
try:
page.locator("button:has-text(\"Upload\")").click()
page.set_input_files("input[name=\"agents_csv_file\"]", agentAdd.path)
page.locator("#agent-import-button").click()
except:
print("Incorrect File Path")
path = input("Enter File Path : ")
page.locator("button:has-text(\"Upload\")").click()
page.set_input_files("input[name=\"agents_csv_file\"]", agentAdd.path)
page.locator("#agent-import-button").click()
except:
page.wait_for_url("https://srtr.knoswlaristy.com/#/settings/agents")
page.locator("button:has-text(\"ADD AGENT\")").click()
page.locator("text=First Name* Last Name >> input[name=\"first_name\"]").click()
# name = input("Enter Name : ")
page.locator("text=First Name* Last Name >> input[name=\"first_name\"]").fill(agentAdd.name)
page.locator("text=First Name* Last Name Email ID* Phone* Afghanistan Aland Islands Albania Algeria >> input[name=\"email\"]").click()
# email = input(" Enter Test_Email : ")
val = "^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{1,3}$"
if(re.match(val, agentAdd.email)):
page.locator("text=First Name* Last Name Email ID* Phone* Afghanistan Aland Islands Albania Algeria >> input[name=\"email\"]").fill(agentAdd.email)
else:
print("Invalid Email address")
# email = input(" Enter Test_Email : ")
page.locator("text=First Name* Last Name Email ID* Phone* Afghanistan Aland Islands Albania Algeria >> input[name=\"email\"]").fill(agentAdd.email)
page.locator("text=First Name* Last Name Email ID* Phone* Afghanistan Aland Islands Albania Algeria >> input[name=\"phone\"]").click()
# pno = input("Enter Test_Phone_Number : ")
if(agentAdd.pno != agentAdd.pno.isdigit() and len(agentAdd.pno) != 10):
print("Number is invalid, Please provide 10 digit number.")
# pno = input("Enter Test_Phone_Number : ")
else:
page.locator("text=First Name* Last Name Email ID* Phone* Afghanistan Aland Islands Albania Algeria >> input[name=\"phone\"]").fill(agentAdd.pno)
page.locator("#save-agentadd").click()
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
/// ERROR I GOT: NotImplementedError