Exemplo n.º 1
0
NAME = "Product search"
SERVICE = Service.ERP
TYPE = PageType.FORM
URL = None
PAGE_TITLE = ""
SubURLs = {
    f"{NAME} (Developing country)":
    URLs.ERP_DEVELOPING_COUNTRY_PRODUCT_SEARCH.absolute,
    f"{NAME} (UK business)": URLs.ERP_BUSINESS_PRODUCT_SEARCH.absolute,
    f"{NAME} (UK consumer)": URLs.ERP_CONSUMER_PRODUCT_SEARCH.absolute,
    f"{NAME} (UK importer)": URLs.ERP_IMPORTER_PRODUCT_SEARCH.absolute,
}
SubURLs = {key.lower(): val for key, val in SubURLs.items()}
NAMES = list(SubURLs.keys())

PRODUCT_CATEGORIES_SELECTOR = Selector(By.CSS_SELECTOR,
                                       "#content form a.govuk-link")
PRODUCT_CODES_SELECTOR = Selector(By.CSS_SELECTOR,
                                  "button.search-product-select-button")
SELECTORS = {}
SELECTORS.update(common_selectors.ERP_HEADER)
SELECTORS.update(common_selectors.ERP_BETA)
SELECTORS.update(common_selectors.ERP_BACK)
SELECTORS.update(common_selectors.ERP_SEARCH_FORM)
SELECTORS.update(common_selectors.ERP_SEARCH_RESULTS)
SELECTORS.update(common_selectors.ERP_HIERARCHY_CODES)
SELECTORS.update(common_selectors.ERP_FOOTER)
# This is only for an exporter from developing country
SELECTORS.update(common_selectors.ERP_SAVE_FOR_LATER)


def visit(driver: WebDriver, *, page_name: str = None):
Exemplo n.º 2
0
    pick_option,
    submit_form,
    tick_captcha_checkbox,
    tick_checkboxes,
)

NAME = "Contact Supplier"
SERVICE = Service.FAS
TYPE = PageType.CONTACT_US
URL = URLs.FAS_CONTACT_SUPPLIER.absolute_template
PAGE_TITLE = "Find a Buyer - GREAT.gov.uk"

SELECTORS = {
    "form": {
        "itself":
        Selector(By.CSS_SELECTOR, "#content form"),
        "given name":
        Selector(By.ID, "id_given_name", type=ElementType.INPUT),
        "family name":
        Selector(By.ID, "id_family_name", type=ElementType.INPUT),
        "company name":
        Selector(By.ID, "id_company_name", type=ElementType.INPUT),
        "country":
        Selector(By.ID, "id_country", type=ElementType.INPUT),
        "email":
        Selector(By.ID, "id_email_address", type=ElementType.INPUT),
        "industry":
        Selector(By.ID, "id_sector", type=ElementType.SELECT),
        "subject":
        Selector(By.ID, "id_subject", type=ElementType.INPUT),
        "message":
Exemplo n.º 3
0
    go_to_url,
    submit_form,
    tick_captcha_checkbox,
    tick_checkboxes,
)
from pages.profile import enrol_enter_your_confirmation_code

NAME = "Enter your email address and set a password (LTD, PLC or Royal Charter)"
SERVICE = Service.PROFILE
TYPE = PageType.FORM
URL = URLs.PROFILE_ENROL_USER_ACCOUNT.absolute
PAGE_TITLE = ""

SELECTORS = {
    "breadcrumbs": {
        "itself": Selector(By.CSS_SELECTOR, "nav.breadcrumbs")
    },
    "enrolment progress bar": {
        "itself": Selector(By.ID, "progress-column")
    },
    "registration form": {
        "itself":
        Selector(By.CSS_SELECTOR, "section form"),
        "email":
        Selector(By.ID,
                 "id_user-account-email",
                 type=ElementType.INPUT,
                 is_visible=False),
        "password":
        Selector(By.ID,
                 "id_user-account-password",
    submit_form,
    tick_captcha_checkbox,
    tick_checkboxes,
)
from pages.domestic import contact_us_short_domestic_thank_you

NAME = "Long (Business details)"
SERVICE = Service.DOMESTIC
TYPE = PageType.CONTACT_US
URL = URLs.CONTACT_US_EXPORT_ADVICE_BUSINESS.absolute
PAGE_TITLE = "Welcome to great.gov.uk"

SELECTORS = {
    "form": {
        "itself":
        Selector(By.CSS_SELECTOR, "#lede form"),
        "uk private or public limited company":
        Selector(By.CSS_SELECTOR,
                 "input[value='LIMITED']",
                 type=ElementType.RADIO),
        "other type of uk organisation":
        Selector(By.CSS_SELECTOR,
                 "input[value='OTHER']",
                 type=ElementType.RADIO),
        "organisation name":
        Selector(By.ID,
                 "id_business-organisation_name",
                 type=ElementType.INPUT),
        "postcode":
        Selector(By.ID, "id_business-postcode", type=ElementType.INPUT),
        "industry":
    check_for_sections,
    check_url,
    fill_out_input_fields,
    submit_form,
)
from pages.erp import consumer_other_changes_after_brexit

NAME = "What percentage of your production do these goods make up (UK importer)"
SERVICE = Service.ERP
TYPE = PageType.FORM
URL = URLs.ERP_IMPORTER_PRODUCTION_PERCENTAGE.absolute
PAGE_TITLE = ""

SELECTORS = {
    "form": {
        "selection form": Selector(By.CSS_SELECTOR, "#content form[method='post']"),
        "step counter": Selector(
            By.CSS_SELECTOR, "form[method=post] span.govuk-caption-l"
        ),
        "heading": Selector(By.CSS_SELECTOR, "form[method=post] h1"),
        "percentage": Selector(
            By.ID,
            "id_production-percentage-production_cost_percentage",
            type=ElementType.INPUT,
            is_visible=True,
        ),
        "continue": Selector(
            By.CSS_SELECTOR,
            "#content > form button.govuk-button",
            type=ElementType.SUBMIT,
            next_page=consumer_other_changes_after_brexit,
Exemplo n.º 6
0
from selenium.webdriver.remote.webdriver import WebDriver

from directory_tests_shared.enums import PageType, Service
from pages.common_actions import (
    Selector,
    assertion_msg,
    check_for_expected_sections_elements,
)

NAME = "Share on Facebook"
SERVICE = Service.FACEBOOK
TYPE = PageType.SHARE
URL = urljoin("https://www.facebook.com/", "share.php?u=")
PAGE_TITLE = "Facebook"

SELECTORS = {"general": {"header": Selector(By.ID, "homelink")}}


def should_be_here(driver: WebDriver):
    check_for_expected_sections_elements(driver, SELECTORS)


def extract_shared_url(url: str) -> str:
    parsed_initial_url = urlparse.urlparse(url)
    initial_url_query_parameters = urlparse.parse_qs(parsed_initial_url.query)
    next_parameter = initial_url_query_parameters["next"][0]
    parsed_next_url = urlparse.urlparse(next_parameter)
    next_url_query_parameters = urlparse.parse_qs(parsed_next_url.query)
    shared_url = next_url_query_parameters["u"][0]
    return shared_url
Exemplo n.º 7
0
    "real estate":
    URLs.INTERNATIONAL_INDUSTRY_REAL_ESTATE.absolute,
    "retail":
    URLs.INTERNATIONAL_INDUSTRY_RETAIL.absolute,
    "space":
    URLs.INTERNATIONAL_INDUSTRY_SPACE.absolute,
    "sports economy":
    URLs.INTERNATIONAL_INDUSTRY_SPORTS_ECONOMY.absolute,
    "technology":
    URLs.INTERNATIONAL_INDUSTRY_TECHNOLOGY.absolute,
}

SELECTORS = {
    "industry breadcrumbs": {
        "great.gov.uk international":
        Selector(By.CSS_SELECTOR,
                 "#breadcrumb-section ol > li:nth-child(1) > a"),
        "industries":
        Selector(By.CSS_SELECTOR,
                 "#breadcrumb-section ol > li:nth-child(2) > a"),
    },
    "content": {
        "section 1": Selector(By.ID, "sector-section-one"),
        "section 2": Selector(By.ID, "sector-section-two"),
        "section statistics": Selector(By.ID, "sector-statistics-section"),
    },
    "next steps": {
        "next steps":
        Selector(By.ID, "sector-next-steps-section"),
        "i want to invest in the uk":
        Selector(By.CSS_SELECTOR,
                 "#sector-next-steps-section div:nth-child(1) > a"),
Exemplo n.º 8
0
    check_if_element_is_visible,
    check_url,
    find_element,
    find_elements,
    go_to_url,
    take_screenshot,
    wait_for_page_load_after_action,
)

NAME = "Landing"
SERVICE = Service.FAS
TYPE = PageType.LANDING
URL = URLs.FAS_LANDING.absolute
PAGE_TITLE = "Find UK suppliers - trade.great.gov.uk"

SEARCH_INPUT = Selector(By.CSS_SELECTOR, "#search-area form input[name=q]")
SEARCH_SECTOR = Selector(By.ID, "id_industries")
SEARCH_BUTTON = Selector(By.CSS_SELECTOR, "#search-area > form button")
CONTACT_US_BUTTON = Selector(By.CSS_SELECTOR, "#introduction-section a")
INDUSTRY_CARDS = Selector(By.CSS_SELECTOR,
                          "#industries-section a.labelled-image-card")
SELECTORS = {
    "hero": {
        "itself": Selector(By.CSS_SELECTOR, "section#hero")
    },
    "find uk suppliers": {
        "itself": Selector(By.ID, "search-area"),
        "search term input": SEARCH_INPUT,
        "search selectors dropdown": SEARCH_SECTOR,
        "find suppliers button": SEARCH_BUTTON,
    },
    fill_out_input_fields,
    submit_form,
)
from pages.erp import uk_importer_are_goods_used_to_make_something_else
from pages.erp.autocomplete_callbacks import autocomplete_country

NAME = "Where do you import from (UK importer)"
SERVICE = Service.ERP
TYPE = PageType.FORM
URL = URLs.ERP_IMPORTER_WHICH_COUNTRIES.absolute
PAGE_TITLE = ""

SELECTORS = {
    "form": {
        "form itself":
        Selector(By.CSS_SELECTOR, "#content form[method='post']"),
        "country":
        Selector(
            By.ID,
            "id_which-countries-import_countries_autocomplete",
            type=ElementType.INPUT,
            is_visible=False,
            autocomplete_callback=autocomplete_country,
        ),
        "continue":
        Selector(
            By.CSS_SELECTOR,
            "#content > form button.govuk-button",
            type=ElementType.SUBMIT,
            next_page=uk_importer_are_goods_used_to_make_something_else,
        ),
    Selector,
    check_url,
    fill_out_input_fields,
    find_element,
    go_to_url,
    take_screenshot,
)

NAME = "New Office Finder"
SERVICE = Service.DOMESTIC
TYPE = PageType.LANDING
URL = URLs.CONTACT_US_OFFICE_FINDER.absolute
PAGE_TITLE = "Welcome to great.gov.uk"

SEARCH_BUTTON = Selector(By.CSS_SELECTOR,
                         "button.button",
                         type=ElementType.BUTTON)
SELECTORS = {
    "form": {
        "itself": Selector(By.CSS_SELECTOR, "form[method=get]"),
        "postcode": Selector(By.ID, "id_postcode", type=ElementType.INPUT),
        "search": SEARCH_BUTTON,
    }
}


def visit(driver: WebDriver):
    go_to_url(driver, URL, NAME)


def should_be_here(driver: WebDriver):
Exemplo n.º 11
0
    contact_us_long_export_advice_comment,
    contact_us_office_finder,
    contact_us_short_domestic,
    contact_us_triage_great_services,
    domestic_eu_exit_contact_us,
    ukef_your_details,
)

NAME = "What can we help you with?"
SERVICE = Service.DOMESTIC
TYPE = PageType.DOMESTIC_CONTACT_US
URL = URLs.CONTACT_US_DOMESTIC.absolute
PAGE_TITLE = "Welcome to great.gov.uk"

SUBMIT_BUTTON = Selector(
    By.CSS_SELECTOR, "div.exred-triage-form button", type=ElementType.BUTTON
)
SELECTORS = {
    "form": {
        "itself": Selector(By.CSS_SELECTOR, "#lede form"),
        "find your local trade office": Selector(
            By.CSS_SELECTOR,
            "input[value='trade-office']",
            type=ElementType.RADIO,
            is_visible=False,
        ),
        "advice to export from the uk": Selector(
            By.CSS_SELECTOR,
            "input[value='export-advice']",
            type=ElementType.RADIO,
            is_visible=False,
Exemplo n.º 12
0
    check_for_sections,
    check_url,
    fill_out_input_fields,
    go_to_url,
    submit_form,
)

NAME = "Enter your confirmation code (LTD, PLC or Royal Charter)"
SERVICE = Service.PROFILE
TYPE = PageType.FORM
URL = URLs.PROFILE_ENROL_EMAIL_VERIFICATION.absolute
PAGE_TITLE = ""

SELECTORS = {
    "enrolment progress bar": {
        "itself": Selector(By.ID, "progress-column")
    },
    "confirmation code message": {
        "message":
        Selector(By.CSS_SELECTOR,
                 "#user-account-verification-header-container p")
    },
    "an option to resend the code": {
        "resend my code": Selector(By.CSS_SELECTOR, "section form a")
    },
    "confirmation code form": {
        "itself":
        Selector(By.CSS_SELECTOR, "section form"),
        "code":
        Selector(By.ID, "id_verification-code", type=ElementType.INPUT),
        "submit":