def test_seed_url_keywords_multiple_params(base_url, driver): value = ("foo", "bar") page = Page(driver, base_url, key=value) seed_url = page.seed_url assert "key={}".format(value[0]) in seed_url assert "key={}".format(value[1]) in seed_url import re assert re.match("{}\?key=(foo|bar)&key=(foo|bar)".format(base_url), seed_url)
def test_seed_url_keywords_multiple_params_special(base_url, driver): value = ("foo", "mozilla&co") page = Page(driver, base_url, key=value) seed_url = page.seed_url assert "key=foo" in seed_url assert "key=mozilla%26co" in seed_url import re assert re.match( "{}\?key=(foo|mozilla%26co)&key=(foo|mozilla%26co)".format(base_url), seed_url )
def close(self) -> Page: """Click on the window close button. :return: the tooltip's parent page :rtype: :py:class:`~pypom.Page` """ Page = self.page.__class__ button = self.find_element(*self._close_tooltip_locator) Utility.click_option(self.driver, element=button) sleep(0.5) return Page(self.driver, self.page.base_url)
def redirect(self) -> Page: """Click the redirect 'x' button. :return: the originating page or the user profile if the originator is Accounts :rtype: :py:class:`~pypom.Page` or :py:class:`~pages.accounts.profile.Profile` """ button = self.find_element(*self._redirect_back_button_locator) Utility.click_option(self.driver, element=button) sleep(0.5) if 'profile' in self.driver.current_url: return self.page return Page(self.driver)
def i_agree(self) -> Page: """Click the 'I AGREE' button. :return: the user's profile, another policy accept page, or the redirect back to the page that preceded the log in :rtype: :py:class:`~pypom.Page` """ another_contract = '&terms' in self.driver.current_url base_url = self.page.base_url button = self.find_element(*self._i_agree_button_locator) Utility.click_option(self.driver, element=button) if another_contract: return go_to_(AcceptTerms(self.driver, base_url=base_url)) sleep(1.0) if 'profile' in self.driver.current_url: from pages.accounts.profile import Profile return go_to_(Profile(self.driver, base_url=base_url)) return Page(self.driver)
def test_wait_for_page_empty_base_url(selenium): assert isinstance(Page(selenium).wait_for_page_to_load(), Page)
def test_open_seed_url_none(selenium): from pypom.exception import UsageError page = Page(selenium) with pytest.raises(UsageError): page.open()
def test_seed_url_empty(selenium): page = Page(selenium) assert page.seed_url is None
def test_wait_for_page_empty_base_url(driver): assert isinstance(Page(driver).wait_for_page_to_load(), Page)
def page(selenium, base_url): from pypom import Page return Page(selenium, base_url)
def page(splinter, base_url): from pypom import Page return Page(splinter, base_url)
def test_seed_url_empty(driver): page = Page(driver) assert page.seed_url is None
def test_wait_for_page_empty_base_url(selenium): selenium.current_url = str(random.random()) page = Page(selenium) assert isinstance(page.wait_for_page_to_load(), Page)
def page(driver, base_url): from pypom import Page return Page(driver, base_url)
def test_seed_url_keywords_params_special(base_url, driver): value = "mozilla&co" page = Page(driver, base_url, key=value) assert "{}?key={}".format(base_url, "mozilla%26co") == page.seed_url
def test_seed_url_keywords_params_space(base_url, driver): value = "a value" page = Page(driver, base_url, key=value) assert "{}?key={}".format(base_url, "a+value") == page.seed_url
def test_seed_url_keywords_params(base_url, driver): value = str(random.random()) page = Page(driver, base_url, key=value) assert "{}?key={}".format(base_url, value) == page.seed_url