diff --git a/actions/AddOnspageaction.py b/actions/AddOnspageaction.py new file mode 100644 index 0000000..55ef20d --- /dev/null +++ b/actions/AddOnspageaction.py @@ -0,0 +1,27 @@ +from pages.AddOnspage import AddOnspage +from actions.BaseAction import BaseAction +from selenium.webdriver import ActionChains +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC + + +class AddOnsaction(BaseAction): + def __init__(self,driver): + super().__init__(driver) + self.adp=AddOnspage(driver) + + def clickAddOns(self): + addons = self.wait.until(EC.visibility_of_element_located(self.adp.AddOns)) + ActionChains(self.driver).move_to_element(addons).perform() + def clickdesigns(self): + self.click(self.adp.designs) + def clickDrawerleft(self): + self.scroll_into_view(self.adp.Drawerleft) + self.click(self.adp.Drawerleft) + def leftpanel(self): + assert self.is_displayed(self.adp.topcategories) + def clickDrawerright(self): + self.scroll_into_view(self.adp.Drawerright) + self.click(self.adp.Drawerright) + def viewrightpanel(self): + assert self.is_displayed(self.adp.rightpanel) \ No newline at end of file diff --git a/actions/ProductCompareAction.py b/actions/ProductCompareAction.py index 0182dad..0645f87 100644 --- a/actions/ProductCompareAction.py +++ b/actions/ProductCompareAction.py @@ -1,5 +1,5 @@ from actions.BaseAction import BaseAction -from pages.ComaprePage import ComparePage +from pages.ComparePage import ComparePage class ProductCompareAction(BaseAction): diff --git a/data_provider/DataProvider.xlsx b/data_provider/DataProvider.xlsx index 25f8a3a..47223c9 100644 Binary files a/data_provider/DataProvider.xlsx and b/data_provider/DataProvider.xlsx differ diff --git a/data_provider/~$DataProvider.xlsx b/data_provider/~$DataProvider.xlsx deleted file mode 100644 index e69de29..0000000 diff --git a/pages/AddOnspage.py b/pages/AddOnspage.py new file mode 100644 index 0000000..61dae94 --- /dev/null +++ b/pages/AddOnspage.py @@ -0,0 +1,42 @@ +from selenium.webdriver.common.by import By +from pages.BasePage import BasePage + + +class AddOnspage(BasePage): + def __init__(self, driver): + super().__init__(driver) + + AddOns=By.XPATH,"//span[normalize-space()='AddOns']" + designs=By.XPATH,"//span[normalize-space()='Designs']" + Drawerleft=By.XPATH,"//div[@id='entry_215006']/child::a" + topcategories=By.XPATH,"//div[@id='mz-component-1626147655']/child::h5" + Drawerright=By.XPATH,"//div[@id='entry_215007']/child::a" + rightpanel=By.XPATH,"//div[@id='entry_215089']" + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pages/ComaprePage.py b/pages/ComparePage.py similarity index 100% rename from pages/ComaprePage.py rename to pages/ComparePage.py diff --git a/tests/test_addons.py b/tests/test_addons.py new file mode 100644 index 0000000..8cf0237 --- /dev/null +++ b/tests/test_addons.py @@ -0,0 +1,43 @@ +from actions.AddOnspageaction import AddOnsaction +import pytest +from utils import loggerCreator +from utils.configReader import ConfigReader + + +logger = loggerCreator.get_logger(__name__) + +@pytest.mark.Jothika +class TestAddOns: + + def test_addonsdrawerleft(self,driver): + drv, wait = driver + self.adpa=AddOnsaction(drv) + + url=ConfigReader.get_url() + logger.info("Application launched successfully") + self.adpa.clickAddOns() + logger.info("Moved to Addons") + self.adpa.clickdesigns() + logger.info("Clicked on designs") + self.adpa.clickDrawerleft() + logger.info("Selected drawerleft") + self.adpa.leftpanel() + logger.info("left panel is displayed") + + def test_drawerRight(self,driver): + drv, wait = driver + self.adpa=AddOnsaction(drv) + + url=ConfigReader.get_url() + logger.info("Application launched successfully") + self.adpa.clickAddOns() + logger.info("Moved to Addons") + self.adpa.clickdesigns() + logger.info("Clicked on designs") + self.adpa.clickDrawerright() + logger.info("Clicked on drawer right") + self.adpa.viewrightpanel() + logger.info("Right panel appeared") + + + diff --git a/tests/test_addreview.py b/tests/test_addreview.py index 2c515d3..d45eb27 100644 --- a/tests/test_addreview.py +++ b/tests/test_addreview.py @@ -63,5 +63,94 @@ def test_withrating(self,driver,rating,expectedMessage): self.arpa.warningmsg(expectedMessage) logger.info("Invalid review submitted successfully") + @pytest.mark.parametrize( + "rating,name,feedback,expectedMessage", + get_data( + "data_provider/DataProvider.xlsx", + "AddReview-withoutname", + ), + ) + + def test_withoutname(self,driver,rating,name,feedback,expectedMessage): + drv, wait = driver + self.arpa=AddReviewpageaction(drv) + url=ConfigReader.get_url() + logger.info("Application launch is successful") + self.arpa.selectproduct() + logger.info("Selected the product") + self.arpa.moveto_review() + logger.info("Found review page") + self.arpa.selectrating(rating) + logger.info("Selected Rating") + self.arpa.enterName(name) + logger.info("Entered empty name") + self.arpa.enterfeedback(feedback) + logger.info("Entered feedback") + self.arpa.clicksubmit() + logger.info("Submitted review") + self.arpa.warningmsg(expectedMessage) + logger.info("Invalid review withoutname submitted successfully") + + + @pytest.mark.parametrize( + "rating,name,expectedMessage", + get_data( + "data_provider/DataProvider.xlsx", + "AddReview-withoutfeedback", + ), + ) + + def test_addingreviewwithoutfeedback(self,driver,rating,name,expectedMessage): + drv, wait = driver + self.arpa=AddReviewpageaction(drv) + url=ConfigReader.get_url() + logger.info("Application launch is successful") + self.arpa.selectproduct() + logger.info("Selected the product") + self.arpa.moveto_review() + logger.info("Found review page") + self.arpa.selectrating(rating) + logger.info("Selected Rating") + self.arpa.enterName(name) + logger.info("Entered name") + + self.arpa.clicksubmit() + logger.info("Submitted review") + self.arpa.warningmsg(expectedMessage) + logger.info("Invalid review withoutfeedback submitted successfully") + + + @pytest.mark.parametrize( + "name,feedback,expectedMessage", + get_data( + "data_provider/DataProvider.xlsx", + "AddReview-withoutrating", + ), + ) + + def test_reviewwithoutrating(self,driver,name,feedback,expectedMessage): + drv, wait = driver + self.arpa=AddReviewpageaction(drv) + url=ConfigReader.get_url() + logger.info("Application launch is successful") + self.arpa.selectproduct() + logger.info("Selected the product") + self.arpa.moveto_review() + logger.info("Found review page") + + self.arpa.enterName(name) + logger.info("Entered empty name") + self.arpa.enterfeedback(feedback) + logger.info("Entered feedback") + self.arpa.clicksubmit() + logger.info("Submitted review") + self.arpa.warningmsg(expectedMessage) + logger.info("Invalid review withoutrating submitted successfully") + + + + + +