from playwright.sync_api import sync_playwright import sys sys.path.append(sys.path[0] + "/..") from elementSelectors.loginAndBuySelectors import elementSelector from testCapabilities.testCaps import testCapabilities select = elementSelector() capability = testCapabilities() # Setting grid status to failed or passed def set_test_status(page, status, remark): page.evaluate("_ => {}", "lambdatest_action: {\"action\": \"setTestStatus\", \"arguments\": {\"status\":\"" + status + "\", \"remark\": \"" + remark + "\"}}") class LoginAndBuy: def __init__(self, playwright) -> None: self.allCaps = [capability.Edge(), capability.Chrome()] self.browsers = [playwright.chromium.connect(i) for i in self.allCaps] pages = [i.new_page() for i in self.browsers] self.pages = pages def launchWeb(self): for page in self.pages: page.goto(select.webPage()) title = page.title() print(title) def fillEmail(self, data): for page in self.pages: page.locator(select.eMail()).fill(data) def fillPassword(self, data): for page in self.pages: page.locator(select.Password()).fill(data) def clickLogin(self): for page in self.pages: page.locator(select.loginAccount()).click() def fillSearchBox(self, data): for page in self.pages: page.locator(select.searchProduct()).fill(data) def clickSearchButton(self): for page in self.pages: page.locator(select.searchButton()).click() def clickProduct(self): for page in self.pages: page.locator(select.Product()).click() def clickAddToCart(self): for page in self.pages: page.locator(select.addCart()).click() def clickCheckOutModal(self): for page in self.pages: page.locator(select.checkOut()).click() def hoverMenuBox(self): for page in self.pages: page.locator(select.hoverBox()).hover() def clickLogout(self): for page in self.pages: page.locator(select.logoutUser()).click() def getSuccessStatus(self): for page in self.pages: set_test_status(page, "passed", "Success") def getFailed(self): for page in self.pages: set_test_status(page, "failed", "Test failed") def closeBrowser(self): for browser in self.browsers: browser.close()