def js_country_select(driver: WebDriver, *, value):
    """Select random country from an input field with JS autocompletion.

    This callback works on following pages:
        * HPO contact form - high-potential-opportunities/contact/
    """
    option_values = extract_attributes_by_css(
        driver.page_source,
        "#js-country-select-select option",
        attrs=["value"],
        text=True,
    )
    # ignore options with no value and flatten the dict to a list
    option_values = [item["text"] for item in option_values if item["value"]]
    logging.debug(f"Available countries: {option_values}")
    value = random.choice(option_values)
    logging.debug(f"Selected country: {value}")
    js_field = find_element(driver, Selector(By.ID, "js-country-select"))
    js_field.click()
    js_field.clear()
    js_field.send_keys(value)
    first_suggestion_selector = Selector(
        By.CSS_SELECTOR, "#js-country-select__listbox li:nth-child(1)")
    first_suggestion = find_element(driver,
                                    first_suggestion_selector,
                                    wait_for_it=True)
    first_suggestion.click()
def enrol_autocomplete_company_name(driver: WebDriver, value: str = None):
    """Value is ignored as we want to choose random company name"""
    autocomplete = Selector(
        By.CSS_SELECTOR, "ul.SelectiveLookupDisplay", is_visible=True
    )
    find_element(driver, autocomplete, element_name="Autocomplete", wait_for_it=True)
    options = find_elements(driver, Selector(By.CSS_SELECTOR, "li[role='option']"))
    option = random.choice(options)
    logging.debug(
        f"Selected company: {option.get_attribute('data-value')} {option.text}"
    )
    option.click()
Пример #3
0
def autocomplete_company_name(driver: WebDriver):
    autocomplete = Selector(
        By.CSS_SELECTOR, "ul.SelectiveLookupDisplay", is_visible=True
    )
    find_element(driver, autocomplete, element_name="Autocomplete", wait_for_it=True)
    options = find_elements(
        driver, Selector(By.CSS_SELECTOR, "li[role='option']", is_visible=True)
    )
    option = random.choice(options)
    logging.debug(
        f"Autocomplete selected country name: {option.get_attribute('data-value')} {option.text}"
    )
    option.click()
Пример #4
0
def find_and_select_random_radio_and_click_next(driver: WebDriver):
    parent_div_radio_element = driver.find_element_by_class_name("m-b-xs")
    time.sleep(2)
    child_radio_div_elements = parent_div_radio_element.find_elements_by_xpath("//input[@type='radio']");
    RADIO_SELECTORS_DICT = {}
    for index in range(len(child_radio_div_elements)):
        child_radio_element = child_radio_div_elements[index]
        key_name = "radio" + str(index)
        radio_element_xpath = f"//input[@id='" + str(child_radio_element.get_attribute("id")) + "']"
        key_value = Selector(By.XPATH, radio_element_xpath, type=ElementType.RADIO)

        if index == 0:
            rsdict = {}
            rsdict[key_name] = key_value
            RADIO_SELECTORS_DICT["product radio info"] = rsdict
        else:
            rsdict = RADIO_SELECTORS_DICT["product radio info"]
            rsdict[key_name] = key_value
            RADIO_SELECTORS_DICT.clear()
            RADIO_SELECTORS_DICT["product radio info"] = rsdict

    radio_selectors = RADIO_SELECTORS_DICT["product radio info"]
    check_random_radio(driver, radio_selectors)

    nextbtnclick(driver)
Пример #5
0
def open_industry(driver: WebDriver, industry_name: str):
    industry_name = industry_name.split(" - ")[1].strip()
    selector = Selector(By.PARTIAL_LINK_TEXT, industry_name)
    logging.debug("Looking for: {}".format(industry_name))
    industry_link = find_element(driver,
                                 selector,
                                 element_name="Industry card",
                                 wait_for_it=False)
    industry_link.click()
    take_screenshot(driver, NAME + " after opening " + industry_name + " page")
Пример #6
0
def should_see_marketplaces(driver: WebDriver, country: str):
    expected_countries = [country, "Global"]
    markets_selector = Selector(By.CSS_SELECTOR, "div.market-item-inner")
    marketplace_countries = {
        marketplace.find_element_by_tag_name("a")
        .text: marketplace.find_element_by_css_selector(
            "div.market-item-inner p.market-operating-countries"
        )
        .text
        for marketplace in find_elements(driver, markets_selector)
    }

    error = f"Found marketplace without a list of countries it operates in"
    assert marketplace_countries, error

    for marketplace, countries in marketplace_countries.items():
        with assertion_msg(
            f"{marketplace} does not operate in '{country}' or Globally!"
            f"but in '{countries}' instead"
        ):
            assert any(country in countries for country in expected_countries)
            logging.debug(
                f"{marketplace} operates in '{country}' or Globally! -> {countries}"
            )
from browserpages import ElementType, common_selectors
from browserpages.common_actions import (
    Selector,
    check_for_sections,
    check_url,
    go_to_url,
    scroll_to,
)

NAME = "Trade Finance"
SERVICE = Service.DOMESTIC
TYPE = PageType.CONTENT
URL = URLs.DOMESTIC_TRADE_FINANCE.absolute
PAGE_TITLE = "Get finance - great.gov.uk"

PROMO_VIDEO = Selector(By.CSS_SELECTOR, "section.get-finance-video video")
BREADCRUMB_LINKS = Selector(By.CSS_SELECTOR, "nav.breadcrumbs a")
SELECTORS = {
    "hero": {
        "itself": Selector(By.ID, "get-finance-hero"),
        "header": Selector(By.CSS_SELECTOR, "#get-finance-hero h1"),
        "description": Selector(By.CSS_SELECTOR, "#get-finance-hero p"),
        "logo": Selector(By.CSS_SELECTOR, "#get-finance-hero img"),
    },
    "ukef breadcrumbs": {
        "great.gov.uk":
        Selector(By.CSS_SELECTOR, "nav.breadcrumbs li:nth-child(1) > a"),
        "ukef":
        Selector(By.CSS_SELECTOR, "nav.breadcrumbs li:nth-child(2) > a"),
    },
    "tell us about your business": {
Пример #8
0
    check_if_element_is_not_present, check_if_element_is_visible, check_url,
    find_element, find_selector_by_name, find_elements, go_to_url, pick_option,
    is_element_present, submit_form, check_random_radio, take_screenshot,
    wait_for_page_load_after_action, fill_out_input_fields,
    fill_out_email_address)

NAME = "Contact us Page"
SERVICE = Service.GREATMAGNA
TYPE = PageType.DASHBOARD
URL = URLs.GREAT_MAGNA_CONTACT_US.absolute
PAGE_TITLE = "Contact us Page"

SELECTORS = {
    "contact us": {
        "please give detail":
        Selector(By.CSS_SELECTOR, "textarea[id=\"id_comment\"]"),
        "first name":
        Selector(By.CSS_SELECTOR, "#id_given_name"),
        "last name":
        Selector(By.CSS_SELECTOR, "#id_family_name"),
        "contact email":
        Selector(By.CSS_SELECTOR, "#id_email"),
        "tick":
        Selector(By.CSS_SELECTOR, "#id_terms_agreed-label"),
        "submit":
        Selector(By.CSS_SELECTOR, "button[class=\"button button--large\"]")
    },
}


def visit(driver: WebDriver, *, page_name: str = None):
Пример #9
0
    # "funding-financing-and-getting-paid/get-paid/insure-against-non-payment/": urljoin(URL,
    #                                                                                    "funding-financing-and-getting-paid/get-paid/insure-against-non-payment/"),
    # "funding-financing-and-getting-paid/get-paid/how-create-export-invoice/": urljoin(URL,
    #                                                                                   "funding-financing-and-getting-paid/get-paid/how-create-export-invoice/"),
    # "funding-financing-and-getting-paid/get-paid/decide-when-get-paid-export-orders/": urljoin(URL,
    #                                                                                            "funding-financing-and-getting-paid/get-paid/decide-when-get-paid-export-orders/"),
    # "funding-financing-and-getting-paid/get-paid/payment-methods-exporters/": urljoin(URL,
    #                                                                                   "funding-financing-and-getting-paid/get-paid/payment-methods-exporters/"),
    # "funding-financing-and-getting-paid/exchange-rates-and-moving-money/managing-exchange-rates/": urljoin(URL,
    #                                                                                                        "funding-financing-and-getting-paid/exchange-rates-and-moving-money/managing-exchange-rates/"),
}

SELECTORS = {
    "categories": {
        "get started":
        Selector(By.XPATH, "//*[@id=\"learn-root\"]/section/a[1]"),
        "identify opportunities":
        Selector(
            By.XPATH,
            "//p[contains(text(),'Learn to identify opportunities abroad and find th')]"
        ),
        "prepare to sell":
        Selector(By.XPATH, "//*[@id=\"learn-root\"]/section/a[3]/article"),
        "regulations licensing and logistics":
        Selector(By.XPATH, "//*[@id=\"learn-root\"]/section/a[4]/article"),
        "funding finance and getting paid":
        Selector(By.XPATH, "//*[@id=\"learn-root\"]/section/a[5]/article"),
        "continue learning":
        Selector(By.XPATH, "//a[contains(text(),'Continue learning')]"),
    },
}
Пример #10
0
from browserpages import common_selectors
from browserpages.common_actions import (
    Selector,
    check_for_sections,
    check_url,
    find_elements,
    go_to_url,
)

NAME = "Updates for non UK companies on EU Exit"
SERVICE = Service.INTERNATIONAL
TYPE = PageType.CONTENT
URL = URLs.INTERNATIONAL_BREXIT_NEWS.absolute
PAGE_TITLE = ""

SUBMIT_BUTTON = Selector(By.CSS_SELECTOR, "form[method=POST] button")
ARTICLES = Selector(By.CSS_SELECTOR, "li.article a")
SELECTORS = {
    "hero": {
        "itself": Selector(By.ID, "hero"),
        "header": Selector(By.CSS_SELECTOR, "#hero h1"),
        "text": Selector(By.CSS_SELECTOR, "#hero p"),
    },
    "articles": {
        "itself": Selector(By.ID, "article-list-page"),
        "breadcrumbs": Selector(By.CSS_SELECTOR, "#article-list-page .breadcrumbs"),
        "great.gov.uk": Selector(
            By.CSS_SELECTOR, ".breadcrumbs a[href='/international/']"
        ),
        "article list": Selector(By.CSS_SELECTOR, "ul.content-list"),
        "articles": Selector(By.CSS_SELECTOR, "li.article"),
    take_screenshot,
    wait_for_page_load_after_action,
    fill_out_input_fields,
    fill_out_email_address
)

NAME = "Marketing Approach"
SERVICE = Service.BUILD_AN_EXPORT_PLAN
TYPE = PageType.BUILD_AN_EXPORT_PLAN
URL = URLs.GREAT_MAGNA_EXPORT_PLAN_MARKETING_APPROACH.absolute
PAGE_TITLE = "Marketing Approach Page"

SELECTORS = {
    "marketing approach": {
        "open": Selector(
            By.XPATH, "//span[contains(text(),'open')]"
        ),
        "close": Selector(
            By.XPATH, "//span[contains(text(),'close')]"
        ),
        "check box": Selector(
            By.CSS_SELECTOR, "#target-age-groups > form > ul > li:nth-child(1) > label"
        ),
        "0-14 year olds": Selector(
            By.CSS_SELECTOR, "#target-age-groups > form > ul > li:nth-child(1) > label"
        ),
        "15-19": Selector(
            By.XPATH, "//label[contains(text(),'15-19 year olds')]"
        ),
        "20-24": Selector(
            By.CSS_SELECTOR, "//input[@id='20-24']"
Пример #12
0
from selenium.webdriver.remote.webdriver import WebDriver

from great_magna_tests_shared import URLs
from great_magna_tests_shared.enums import PageType, Service
from browserpages import common_selectors
from browserpages.common_actions import Selector, check_for_sections, check_url, go_to_url

NAME = "Regions"
SERVICE = Service.INTERNATIONAL
TYPE = PageType.LANDING
URL = URLs.INTERNATIONAL_REGIONS.absolute
PAGE_TITLE = "Invest in Great Britain - "

SELECTORS = {
    "regions list": {
        "scotland": Selector(By.PARTIAL_LINK_TEXT, "Scotland"),
        "northern ireland": Selector(By.PARTIAL_LINK_TEXT, "Northern Ireland"),
        "north of england": Selector(By.PARTIAL_LINK_TEXT, "North of England"),
        "wales": Selector(By.PARTIAL_LINK_TEXT, "Wales"),
        "midlands": Selector(By.PARTIAL_LINK_TEXT, "Midlands"),
        "south of england": Selector(By.PARTIAL_LINK_TEXT, "South of England"),
    },
    "the uk map": {
        "the uk map - svg": Selector(By.CSS_SELECTOR, "svg.uk-map"),
        "scotland - svg": Selector(By.ID, "scotland"),
        "northern ireland - svg": Selector(By.ID, "northern-ireland"),
        "north of england - svg": Selector(By.ID, "north-england"),
        "wales - svg": Selector(By.ID, "wales"),
        "midlands - svg": Selector(By.ID, "midlands"),
        "south of england - svg": Selector(By.ID, "south-england"),
    },
Пример #13
0
    check_if_element_is_not_present, check_if_element_is_visible, check_url,
    find_element, find_selector_by_name, find_elements, go_to_url, pick_option,
    is_element_present, submit_form, check_random_radio, take_screenshot,
    wait_for_page_load_after_action, fill_out_input_fields,
    fill_out_email_address)

NAME = "Sign out"
SERVICE = Service.GREATMAGNA
TYPE = PageType.SEARCH
URL = URLs.GREAT_MAGNA_SIGN_OUT.absolute
PAGE_TITLE = "Sign out Page"

SELECTORS = {
    "sign out": {
        "avatar":
        Selector(By.XPATH,
                 "///header/nav[1]/div[1]/ul[1]/li[4]/div[1]/button[1]"),
        "sign out":
        Selector(
            By.XPATH,
            "//body/div[2]/div[1]/div[1]/ul[1]/li[6]/button[1]"  # //span[contains(text(),'Sign out')]
        ),
        "skipwalkthrough":
        Selector(By.XPATH, "//*[@id=\"page-tour-skip\"]"),
    },
}


def visit(driver: WebDriver, *, page_name: str = None):
    go_to_url(driver, URL, page_name or NAME)

Пример #14
0
    assertion_msg,
    check_url,
    find_element,
    find_elements,
    find_selector_by_name,
    go_to_url,
    scroll_to,
    take_screenshot,
)

NAME = "Search results"
SERVICE = Service.DOMESTIC
TYPE = PageType.SEARCH_RESULTS
URL = URLs.DOMESTIC_SEARCH.absolute

PAGES = Selector(By.CSS_SELECTOR, "ol.navigation li")
PAGINATION = Selector(By.CSS_SELECTOR, "div.pagination")
ACTIVE_PAGE = Selector(By.CSS_SELECTOR, ".pagination span.active")
NEXT = Selector(By.CSS_SELECTOR, ".pagination a.pagination-next")
PREVIOUS = Selector(By.CSS_SELECTOR, "a.pagination-previous[rel=prev]")
SUBMIT_BUTTON = Selector(
    By.CSS_SELECTOR, "#search-again-input ~ input[type=submit]", type=ElementType.BUTTON
)
SEARCH_RESULTS = Selector(By.CSS_SELECTOR, "ul.results li")
SELECTORS = {
    "form": {
        "search box": Selector(By.ID, "search-again-input", type=ElementType.INPUT),
        "search button": SUBMIT_BUTTON,
    },
    "results": {
        "itself": Selector(By.ID, "search-results-list"),
    go_to_url,
    take_screenshot,
)
from browserpages.domestic import (
    contact_us_short_domestic,
    contact_us_triage_great_account_dedicated_support_content as SUPPORT_CONTENT,
)

NAME = "Great.gov.uk account"
SERVICE = Service.DOMESTIC
TYPE = PageType.DOMESTIC_CONTACT_US
URL = URLs.CONTACT_US_GREAT_ACCOUNT.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"),
        "i have not received an email confirmation": Selector(
            By.CSS_SELECTOR,
            "input[value='no-email-confirmation']",
            type=ElementType.RADIO,
            is_visible=False,
        ),
        "i need to reset my password": Selector(
            By.CSS_SELECTOR,
            "input[value='password-reset']",
            type=ElementType.RADIO,
            is_visible=False,
Пример #16
0
    Selector,
    check_for_sections,
    check_url,
    go_to_url,
    wait_for_page_load_after_action,
)
from browserpages.domestic import actions as domestic_actions

NAME = "Advice landing"
TYPE = PageType.LANDING
SERVICE = Service.DOMESTIC
URL = URLs.DOMESTIC_ADVICE.absolute
PAGE_TITLE = "Welcome to great.gov.uk"

ARTICLE_LINKS = Selector(
    By.CSS_SELECTOR, "#-list-section a", type=ElementType.LINK
)
SELECTORS = {
    "advice & guidance tiles": {
        "itself": Selector(By.CSS_SELECTOR, "#-list-section"),
        "cards": Selector(By.CSS_SELECTOR, "#-list-section div.card"),
        "articles": ARTICLE_LINKS,
        "article images": Selector(By.CSS_SELECTOR, "#-list-section .card-image"),
    # "upskill now": {
    #     "itseld": Selector(By.CSS_SELECTOR,"#content > div:nth-child(3) > div > div.cta-container > a"),
    # }
    }
}
SELECTORS.update(common_selectors.DOMESTIC_HEADER)
SELECTORS.update(common_selectors.BREADCRUMBS)
SELECTORS.update(common_selectors.DOMESTIC_HERO_WO_LINK)
Пример #17
0
    wait_for_page_load_after_action,
    fill_out_input_fields,
    fill_out_email_address

)

NAME = "DashboardHeader"
SERVICE = Service.GREATMAGNA
TYPE = PageType.DASHBOARD
URL = URLs.GREAT_MAGNA_DASHBOARD.absolute
PAGE_TITLE = "Dashboard Page "

SELECTORS = {
    "dashboard": {
        "learn to export": Selector(
            By.CSS_SELECTOR, "#header-link-learning"  # "//a[@id='header-link-learning']"
        ),
        "where to Export": Selector(
            By.CSS_SELECTOR, "#header-link-markets"  # //a[@id='header-link-markets']"
        ),
        "build an export plan": Selector(
            By.CSS_SELECTOR, "#header-link-exporting-plan"  # "//a[@id='header-link-exporting-plan']"
        ),
        "sign out": Selector(
            By.XPATH, "//body/div[2]/div[1]/div[1]/ul[1]/li[6]/button[1]"  # //span[contains(text(),'Sign out')]
        ),
        "skipwalkthrough": Selector(
            By.XPATH, "//*[@id=\"page-tour-skip\"]"
        ),
        "avatar": Selector(
            By.CSS_SELECTOR, "#header-link-user-profile > div > button"
Пример #18
0
# -*- coding: utf-8 -*-
"""Events Home Page Object."""
import logging

from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webdriver import WebDriver

from great_magna_tests_shared import URLs
from great_magna_tests_shared.enums import PageType, Service
from browserpages.common_actions import Selector, check_url, go_to_url, wait_for_visibility

NAME = "Home"
SERVICE = Service.EVENTS
TYPE = PageType.HOME
URL = URLs.EVENTS_LANDING.absolute
GREAT_LOGO = Selector(By.CSS_SELECTOR, "div.event-logo")
SELECTORS = {"general": {"great.gov.uk logo": GREAT_LOGO}}


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


def should_be_here(driver: WebDriver):
    wait_for_visibility(driver, GREAT_LOGO, time_to_wait=15)
    check_url(driver, URL, exact_match=False)
    logging.debug("All expected elements are visible on '%s' page", NAME)
Пример #19
0
"""International - Transition period enquiries - Thank you page"""
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webdriver import WebDriver

from great_magna_tests_shared import URLs
from great_magna_tests_shared.enums import PageType, Service
from browserpages.common_actions import Selector, check_url, go_to_url

NAME = "Transition period enquiries"
SERVICE = Service.INTERNATIONAL
TYPE = PageType.THANK_YOU
URL = URLs.CONTACT_US_INTERNATIONAL_TRANSITION_PERIOD_CONTACT_SUCCESS.absolute
PAGE_TITLE = "Welcome to great.gov.uk - buy from or invest in the UK"

LANGUAGE_SELECTOR = Selector(
    By.CSS_SELECTOR,
    "#international-header-bar .LanguageSelectorDialog-Tracker")
SUBMIT_BUTTON = Selector(By.CSS_SELECTOR, "form[method=POST] button")
SELECTORS = {
    "header bar": {
        "itself": Selector(By.ID, "international-header-bar")
    },
    "header-menu": {
        "itself": Selector(By.ID, "international-header-menu"),
        "logo": Selector(By.ID, "international-header-logo"),
        "breadcrumbs": Selector(By.CSS_SELECTOR, ".breadcrumbs"),
    },
    "success": {
        "itself": Selector(By.ID, "success-message-container"),
        "header": Selector(By.CSS_SELECTOR, "#success-message-container h1"),
        "text": Selector(By.CSS_SELECTOR, "#success-message-container p"),
Пример #20
0
    check_url,
    fill_out_input_fields,
    go_to_url,
    submit_form,
)

NAME = "Your details"
SERVICE = Service.DOMESTIC
TYPE = PageType.UKEF_CONTACT_US
URL = URLs.DOMESTIC_GET_FINANCE_YOUR_DETAILS.absolute
PAGE_TITLE = "Welcome to great.gov.uk"

SELECTORS = {
    "breadcrumbs": {
        "itself":
        Selector(By.CSS_SELECTOR, "nav.breadcrumbs"),
        "current page":
        Selector(By.CSS_SELECTOR, "nav.breadcrumbs li[aria-current='page']"),
        "links":
        Selector(By.CSS_SELECTOR, "nav.breadcrumbs a"),
    },
    "form": {
        "itself":
        Selector(By.CSS_SELECTOR, "#content form"),
        "heading":
        Selector(By.CSS_SELECTOR, "#heading-container h1"),
        "first name":
        Selector(By.ID, "id_your-details-firstname", type=ElementType.INPUT),
        "last name":
        Selector(By.ID, "id_your-details-lastname", type=ElementType.INPUT),
        "position":
Пример #21
0
from great_magna_tests_shared import URLs
from great_magna_tests_shared.enums import PageType, Service
from browserpages import common_selectors
from browserpages.common_actions import Selector, check_for_sections, check_url, go_to_url

NAME = "You cannot create an account"
SERVICE = Service.PROFILE
TYPE = PageType.FORM
URL = URLs.PROFILE_ENROL_OVERSEAS_BUSINESS.absolute
PAGE_TITLE = ""

SELECTORS = {
    "explanation": {
        "heading":
        Selector(By.CSS_SELECTOR, "#content div > h1"),
        "back":
        Selector(By.PARTIAL_LINK_TEXT, "Back"),
        "visit our site for international businesses":
        Selector(By.PARTIAL_LINK_TEXT,
                 "visit our site for international businesses."),
    }
}
SELECTORS.update(common_selectors.DOMESTIC_HEADER)
SELECTORS.update(common_selectors.BREADCRUMBS)
SELECTORS.update(common_selectors.DOMESTIC_FOOTER)


def visit(driver: WebDriver):
    go_to_url(driver, URL, NAME)
Пример #22
0
    wait_for_page_load_after_action,
    fill_out_input_fields,
    fill_out_email_address

)

NAME = "Protect your business from bribery and corruption"
SERVICE = Service.LEARNTOEXPORT
TYPE = PageType.LESSON
URL = URLs.GREAT_MAGNA_LESSONS_PROTECT_YOUR_BUSINESS_FROM_BRIBERY_AND_CORRUPTION.absolute
PAGE_TITLE = "Protect your business from bribery and corruption"

SELECTORS = {
    "protect your business from bribery and corruption": {
        "lesson yes checkbox": Selector(
            By.XPATH, "//label[contains(text(),'Yes')]"
        ),
        "continue learning": Selector(
            By.XPATH, "//a[contains(text(),'Continue learning')]"
        ),
        "bottom back": Selector(
            By.XPATH, "//body/main[@id='content']/div[1]/div[3]/a[1]/i[1]"
        ),
        "top back": Selector(
            By.XPATH, "//*[@id=\"content\"]/div/a/i"
        ),
        "open case study" :Selector(
            By.XPATH, "//button[contains(text(),'Open case study')]"
        ),
        "close case study": Selector(
            By.XPATH, "//*[@id=\"case_study\"]/div/button"
    check_if_element_is_not_present, check_if_element_is_visible, check_url,
    find_element, find_selector_by_name, find_elements, go_to_url, pick_option,
    is_element_present, submit_form, check_random_radio, take_screenshot,
    wait_for_page_load_after_action, fill_out_input_fields,
    fill_out_email_address)

NAME = "forgotten password"
SERVICE = Service.GREATMAGNA
TYPE = PageType.SEARCH
URL = URLs.GREAT_MAGNA_FORGOTTEN_PASSWORD.absolute
PAGE_TITLE = "Forgotten password Page"

SELECTORS = {
    "forgotten password": {
        "emailaddress":
        Selector(By.XPATH, "//input[@id='id_email']", type=ElementType.INPUT),
        "resetmypassword":
        Selector(By.XPATH, "//button[contains(text(),'Reset my password')]"),
        "newpassword":
        Selector(By.XPATH,
                 "//input[@id='id_password1']",
                 type=ElementType.INPUT),
        "confirmpassword":
        Selector(By.XPATH,
                 "//input[@id='id_password2']",
                 type=ElementType.INPUT),
        "changepassword":
        Selector(By.XPATH, "//button[@class='button']"),
    },
}
    go_to_url,
    pick_option,
    submit_form,
)
from browserpages.profile import enrol_enter_your_details

NAME = "Enter your business details [step 2]"
NAMES = ["Enter your business details [step 2] (LTD, PLC or Royal Charter)"]
SERVICE = Service.PROFILE
TYPE = PageType.FORM
URL = URLs.PROFILE_ENROL_BUSINESS_DETAILS.absolute
SubURLs = {"enter your business details [step 2] (ltd, plc or royal charter)": URL}
PAGE_TITLE = ""

INDUSTRY = Selector(
    By.ID, "id_business-details-sectors", is_visible=False, type=ElementType.SELECT
)
WEBSITE = Selector(
    By.ID, "id_business-details-website", is_visible=False, type=ElementType.INPUT
)
SELECTORS = {
    "enrolment progress bar": {"itself": Selector(By.ID, "progress-column")},
    "enter your business details": {
        "itself": Selector(By.CSS_SELECTOR, "section form"),
        "heading": Selector(By.CSS_SELECTOR, "h2"),
        "text": Selector(By.ID, "form-step-body-text"),
        "company name": Selector(By.ID, "id_business-details-company_name"),
        "industry": INDUSTRY,
        "website": WEBSITE,
        "submit": Selector(
            By.CSS_SELECTOR,
    go_to_url,
    submit_form,
    tick_captcha_checkbox,
    tick_checkboxes,
)
from browserpages.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",
    find_element, find_selector_by_name, find_elements, go_to_url, pick_option,
    is_element_present, submit_form, check_random_radio, take_screenshot,
    wait_for_page_load_after_action, fill_out_input_fields,
    fill_out_email_address)

NAME = "Regulations licensing and logistics"
SERVICE = Service.LEARNTOEXPORT
TYPE = PageType.LESSON
URL = URLs.GREAT_MAGNA_LESSONS_REGULATIONS_LICENSING_AND_LOGISTICS.absolute
PAGE_TITLE = "Regulations licensing and logistics page"

SELECTORS = {
    "Regulations licensing and logistics": {
        "how to adapt your labelling and packaging":
        Selector(
            By.XPATH,
            "//span[contains(text(),'How to adapt your labelling and packaging')]"
        ),
        "understand duties and taxes":
        Selector(By.XPATH,
                 "//span[contains(text(),'Understand duties and taxes')]"),
        "Regulations around supplying a service":
        Selector(
            By.XPATH,
            "//span[contains(text(),'Understand regulations around supplying a service')]"
        ),
        "freight forwarders":
        Selector(By.XPATH, "//span[contains(text(),'Freight forwarders')]"),
        "understand data regulations and data protection":
        Selector(
            By.XPATH,
            "//span[contains(text(),'Understand data regulations and data protection')]"
    check_if_element_is_not_present, check_if_element_is_visible, check_url,
    find_element, find_selector_by_name, find_elements, go_to_url, pick_option,
    is_element_present, submit_form, check_random_radio, take_screenshot,
    wait_for_page_load_after_action, fill_out_input_fields,
    fill_out_email_address)

NAME = "Ease of entry into a new market"
SERVICE = Service.LEARNTOEXPORT
TYPE = PageType.LESSON
URL = URLs.GREAT_MAGNA_LESSONS_EASE_OF_ENTRY_INTO_A_NEW_MARKET.absolute
PAGE_TITLE = "Ease of entry into a new market"

SELECTORS = {
    "ease of entry into a new market": {
        "lesson yes checkbox":
        Selector(By.XPATH, "//label[contains(text(),'Yes')]"),
        "continue learning":
        Selector(By.XPATH, "//a[contains(text(),'Continue learning')]"),
        "bottom back":
        Selector(By.XPATH,
                 "//body/main[@id='content']/div[1]/div[3]/a[1]/i[1]"),
        "top back":
        Selector(By.XPATH, "//*[@id=\"content\"]/div/a/i"),
        "open case study":
        Selector(By.XPATH, "//button[contains(text(),'Open case study')]"),
        "close case study":
        Selector(By.XPATH, "//*[@id=\"case_study\"]/div/button"),
        "view all lessons":
        Selector(By.XPATH, "//a[contains(text(),'View all lessons')]"),
        "view transcript":
        Selector(By.XPATH, "//span[contains(text(),'View transcript')]"),
Пример #28
0
    wait_for_page_load_after_action,
    fill_out_input_fields,
    fill_out_email_address,
    fill_out_textarea_fields,
)

NAME = "Funding and credit"
SERVICE = Service.BUILD_AN_EXPORT_PLAN
TYPE = PageType.BUILD_AN_EXPORT_PLAN
URL = URLs.GREAT_MAGNA_EXPORT_PLAN_FUNDING_AND_CREDIT.absolute
PAGE_TITLE = "Funding and credit Page"

SELECTORS = {
    "funding and credit": {
        "estimate":
        Selector(By.CSS_SELECTOR,
                 "#finance-total-export-cost > div > div.m-b-xs > button"),
        "estimate input":
        Selector(By.XPATH,
                 "//input[@id='override_estimated_total_cost']",
                 type=ElementType.INPUT),
        "how much funding":
        Selector(By.XPATH,
                 "//input[@id='funding_amount_required']",
                 type=ElementType.INPUT),
        "lesson":
        Selector(By.CSS_SELECTOR, "#finance-funding-credit-options > button"),
        "add a funding option":
        Selector(
            By.XPATH,
            "//body/main/div[2]/div/div/div[2]/div/div[3]/div[1]/table/tfoot/tr/td/button"
        ),
Пример #29
0
    wait_for_page_load_after_action,
    fill_out_input_fields,
    fill_out_email_address,
    fill_out_textarea_fields,
)

NAME = "Getting Paid"
SERVICE = Service.BUILD_AN_EXPORT_PLAN
TYPE = PageType.BUILD_AN_EXPORT_PLAN
URL = URLs.GREAT_MAGNA_EXPORT_PLAN_GETTING_PAID.absolute
PAGE_TITLE = "Getting Paid Page"

SELECTORS = {
    "getting paid": {
        "payment methods": Selector(
            By.CSS_SELECTOR,
            "#getting-paid > div > div:nth-child(1) > div.select.m-b-l > div > div.select__placeholder.text-blue-deep-60.bg-white.radius"
        ),
        "payment methods notes": Selector(
            By.CSS_SELECTOR, "#method_notes", type=ElementType.INPUT
        ),
        "payment terms": Selector(
            By.CSS_SELECTOR,
            "#getting-paid > div > div:nth-child(2) > div.select.m-b-l > div > div.select__placeholder.text-blue-deep-60.bg-white.radius"
        ),
        "payment terms notes": Selector(
            By.CSS_SELECTOR, "#payments_notes", type=ElementType.INPUT
        ),
        "incoterms": Selector(
            By.CSS_SELECTOR,
            "#getting-paid > div > div:nth-child(3) > div.select.m-b-l > div > div.select__placeholder.text-blue-deep-60.bg-white.radius"
        ),
    find_element, find_selector_by_name, find_elements, go_to_url, pick_option,
    is_element_present, submit_form, check_random_radio, take_screenshot,
    wait_for_page_load_after_action, fill_out_input_fields,
    fill_out_textarea_fields, fill_out_email_address)

NAME = "Business Objectives"
SERVICE = Service.BUILD_AN_EXPORT_PLAN
TYPE = PageType.BUILD_AN_EXPORT_PLAN
URL = URLs.GREAT_MAGNA_EXPORT_PLAN_BUSINESS_OBJECTIVES.absolute
PAGE_TITLE = "Business Objectives Page"

SELECTORS = {
    "business objectives": {
        "business objectives":
        Selector(
            By.CSS_SELECTOR,
            "#export-plan-dashboard > div:nth-child(2) > div > a > div.p-t-s.p-b-xs.p-h-xs"
        ),
        "why you want to export example":
        Selector(
            By.CSS_SELECTOR,
            "#objectives-reasons > div > div.learning > div.learning__buttons.m-b-xs > button",
            type=ElementType.INPUT),
        "why you want to export":
        Selector(By.XPATH,
                 "//textarea[@id='rationale']",
                 type=ElementType.INPUT),
        "objective text":
        Selector(
            By.CSS_SELECTOR,
            "#description"
            # "//body/main[@id='content']/div[@id='business-objectives-content']/section[4]/div[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/textarea[1]"