Example #1
0
class Day(WebElement):
    date = Find(by=By.XPATH,
                value="./div[@class='cal_month_day_date ng-binding']")
    events_list = Finds(Event,
                        by=By.XPATH,
                        value=".//div[@class='cal_week_event ng-scope']")
    view_all = Find(by=By.XPATH, value=".//a[text()='[View All]']")
Example #2
0
class ChannelPayrollPage(BasePage):
    url = 'https://ci004.godo.io/channel_payroll.aspx'
    channel_payment_due = Find(by=By.XPATH, value="//a[@id='payrolldetailplus_']")
    channel_paid = Find(by=By.XPATH, value="//a[@id='paymentPaidChannel']")
    channel_entries = Finds(by=By.XPATH, value="//tbody[@ng-repeat='payment in vm.channelPaymentDue track by $index']")
    channel_names = Finds(by=By.XPATH, value="//tbody[@ng-repeat='payment in vm.channelPaymentDue track by $index']")
    channel_paid_entries = Finds(by=By.XPATH, value="//tr[@ng-repeat='payment in vm.channelPaid track by $index']")
    channel_paid_amounts = Finds(by=By.XPATH, value="//*[@id='dtChannelPaid']/tbody/tr/td[4]")
    channel_detail = Finds(by=By.XPATH, value="//a[@ng-click='vm.showDetails(payment.channelId)']")
    direct_deposit = Finds(by=By.XPATH, value="//input[@value='directdeposit']")
    cash = Finds(by=By.XPATH, value="//input[@value='cash']")
    check = Finds(by=By.XPATH, value="//input[@value='check']")
    check_number = Finds(by=By.XPATH, value="//input[@type='text']")
    pay_button = Finds(by=By.XPATH, value="//button[@ng-click='vm.commitChannelPayment(payment)']")
    OK_button = Find(by=By.XPATH, value="//button[@ng-click='vm.cancel()']")




    guide_list = Find(by=By.XPATH, value="//select[@id='selectGuides']")
    event_due = Finds(by=By.XPATH, value ="//*[contains(@id,'guidePayroll')]/tbody/tr[1]/td[6]")
    activity_timedate = Finds(by=By.XPATH, value ="//a[contains(@ng-click,'vm.openManifest')]")

    show_entries = Find(by=By.XPATH, value="//select[@name='guidePayrollAll_length']")
    payment_entry = Finds(by=By.XPATH, value="//tr[@class='row']|//tr[@class='odd']|//tr[@class='even']")
Example #3
0
class SearchForm(BasePage):
    min_price_input = Find(by=By.XPATH, value="//input[@name='price_before']")
    max_price_input = Find(by=By.XPATH, value="//input[@name='price_after']")
    show_results = Find(
        by=By.XPATH,
        value="//div[contains(@class, 'ModelFilter__ParamListBtnSel')]//span")

    def select_brand(self, brand):
        Find(by=By.XPATH,
             value="//div[@id='Attr_prof_1000']//label[text()='{}']".format(
                 brand),
             context=self).click()
        LOGGER.info("Brand has been set to '%s'", brand)

    def select_min_price(self, min_price):
        self.min_price_input.send_keys(min_price)
        LOGGER.info("Min price has been set to '%s'", min_price)

    def select_max_price(self, max_price):
        self.max_price_input.send_keys(max_price)
        LOGGER.info("Max price has been set to '%s'", max_price)

    def click_show_results(self):
        self.show_results.click()
        LOGGER.info("Click show results button")
Example #4
0
class ResultItem(WebElement):
    title = Find(by=By.XPATH, value=".//span[@itemprop='name']")
    min_price = Find(by=By.XPATH,
                     value=".//span[@class='PriceBlock__PriceValue']/span")
    max_price = Find(
        by=By.XPATH,
        value=".//span[contains(@class, 'PriceBlock__PriceLastValue')]/span")
Example #5
0
class CartPage(BasePage):
    order = Find(
        by=By.CSS_SELECTOR,
        value=
        "a[class='button-style button-style_primary button-style_small cart-form__button']"
    )
    order_form = Find(by=By.CSS_SELECTOR, value="div[class='cart-form__flex']")
    remove = Find(
        by=By.XPATH,
        value=
        "//div[@class='cart-form__offers-part cart-form__offers-part_remove']/div/a"
    )
    remove_field = Find(by=By.XPATH,
                        value="//div[@class='cart-form__control']//input")

    def click_order_link(self):
        wait(self.order.is_displayed)
        self.order.click()

    def click_remove_field(self):
        wait(self.remove_field.is_displayed)
        self.remove_field.click()

    def click_remove(self):
        wait(self.remove.is_displayed)
        self.remove.click()
Example #6
0
class LoginPage(BasePage):

    def __init__(self, domain, *args, **kwargs):
        super().__init__(url=domain, *args, **kwargs)

    # Base login page.

    login_input = Find(by=By.NAME, value="username")
    password_input = Find(by=By.NAME, value="password")
    login_button = Find(by=By.CSS_SELECTOR, value="input[type=submit]")

    # Page to select company for call center user. ccu_companyList.aspx

    logout_button = Find(by=By.XPATH, value="//a[@href='/login.aspx?command=logout']")
    company_list = Finds(CompanyList, by=By.XPATH, value="//tbody/tr")

    def choose_company(self, company):
        for item in self.company_list:
            title = item.company_name.text
            if title == company:
                item.login_button.click()
                break

    def get_url(self):
        return self._driver.current_url
class PackagesCreatePage(AbstractBasePage):
    createPackageHeader = Find(by=By.XPATH,
                               value='.//*[text()="Create a Package"]')
    packageNameField = Find(by=By.XPATH, value='.//*[@name="description"]')
    templateDropdown = Find(by=By.XPATH,
                            value='.//*[text()="Select template"]/parent::*')
    atLeastOneAccount = Find(by=By.XPATH, value='.//td[text()="1"]')
    firstStrategy = Find(by=By.XPATH, value='.//*[text()="StratiFi RE RR"]')

    def __init__(self):
        AbstractBasePage.__init__(
            self, "http://operations.stratifi.com/packages/create")

    # ------------Clicks------------------------------

    def select_the_first_strategy(self):
        self.firstStrategy.click()

    # ------------Send Keys------------------------------

    def enter_package_name(self, package_name):
        self.packageNameField.send_keys(package_name)

    # ---------------Asserts-------------------------------

    def check_if_there_is_at_least_one_account(self):
        assert self.is_element_present(
            "atLeastOneAccount",
            timeout=60), "There are no accounts for selected strategy"

    def check_if_create_a_package_page_is_loaded(self):
        assert self.is_element_present(
            "createPackageHeader",
            timeout=10), "Create package page was not loaded"
Example #8
0
class GrouponPage(BasePage):
    import_codes = Find(by=By.XPATH,
                        value="//div[@name='inputCodeForm']//button")
    groupon_list = Finds(GrouponList, by=By.XPATH, value="//tbody/tr")
    details = Find(by=By.XPATH, value="//a[text()='Details']")
    view_redemptions = Find(by=By.XPATH,
                            value="//a[text()='View Redemptions']")
    view_codes = Find(by=By.XPATH, value="//a[text()='View Codes']")
    code_list_not_redeemed = Finds(CodeList,
                                   by=By.XPATH,
                                   value="//td[text()=0]/..")
    code_list_redeemed = Finds(CodeList,
                               by=By.XPATH,
                               value="//td[text()=1]/..")

    def select_groupon(self, name):
        for item in self.groupon_list:
            if item.groupon_name.text == name:
                item.edit_button.click()
                break

    def copy_code(self, order):
        for item in self.code_list_not_redeemed:
            if item.redeemed.text == "0":
                order.promo_code = item.code.text
                break

    def copy_redeemed_code(self, order):
        for item in self.code_list_redeemed:
            if item.redeemed.text == "1":
                order.promo_code = item.code.text
                break
class ModelsPage(AbstractBasePage, unittest.TestCase):
    createdModelsHeader = Find(by=By.XPATH,
                               value='.//*[text()="Created Models"]')
    targetModel = Find(by=By.XPATH, value='.//*[text()="Model for autotest"]')
    archiveButtonForTargetModel = Find(
        by=By.XPATH,
        value='.//*[text()="Model for autotest"]/following::*[text()="Archive"]'
    )

    def __init__(self):
        AbstractBasePage.__init__(
            self, "https://advisors.stratifi.com/advisor/models")

# --------------Clicks-----------------------

    def press_archive_button_for_target_model(self):
        self.archiveButtonForTargetModel.click()

# ---------------Asserts-------------------------------

    def check_models_page_loaded(self):
        assert self.is_element_present(
            "createdModelsHeader", timeout=10), "Models page was not loaded"

    def check_if_created_model_is_in_the_list(self):
        assert self.is_element_present(
            "targetModel", timeout=10), "Unable to find a target model"

    def check_if_target_model_was_deleted(self):
        self.assertFalse(self.is_element_present("targetModel", timeout=10),
                         "Target model was not deleted")
Example #10
0
class CatalogPage(BasePage):
    subsections = Finds(by=By.XPATH, value="//ul[@class='catalog-bar__list']/li/a")
    subsection_page_header = Find(by=By.CSS_SELECTOR, value="h1[class='schema-header__title']")
    products = Finds(by=By.XPATH, value="//a[@data-bind='attr: {href: product.html_url}']/span/..")
    compare_button = Find(by=By.CSS_SELECTOR, value="a[class ='compare-button__sub compare-button__sub_main']")
    remove_compare_icon = Find(by=By.CSS_SELECTOR, value="a[title='Очистить список сравнения']")
    remove_compare_button = Find(by=By.CSS_SELECTOR, value="a[class='compare-button__sub']")

    def click_subsection_link(self, index):
        self.subsections[index].click()

    def click_product_link(self, index):
        wait(self.subsection_page_header.is_displayed)
        self.products[index].click()

    def click_compare(self):
        wait(self.compare_button.is_displayed)
        self.compare_button.click()

    def click_remove_compare_icon(self):
        wait(self.remove_compare_icon.is_displayed)
        self.remove_compare_icon.click()

    def click_remove_compare_button(self):
        wait(self.remove_compare_button.is_displayed)
        self.remove_compare_button.click()
class LoginPage(KibanaBasePage):
    '''
    Kibana Login Page
    '''

    username_field = Find(**data_test_subj('loginUsername'))
    password_field = Find(**data_test_subj('loginPassword'))
    login_button = Find(**data_test_subj('loginSubmit'))

    def __init__(self, **kwargs):
        super().__init__(**kwargs)

    def loaded(self):
        wait(lambda: self.is_element_present('username_field') is True)

    def enter_username(self, name):
        self.username_field.clear()
        self.username_field.send_keys(name)

    def enter_password(self, password):
        self.password_field.clear()
        self.password_field.send_keys(password)

    def click_submit(self):
        self.login_button.click()

    def login(self, username, password):
        self.open()
        self.loaded()
        self.enter_username(username)
        self.enter_password(password)
        self.click_submit()
Example #12
0
class PaymentsPage(BasePage):
    '''Объект страницы платежи

    search_input {WebElemnt} - Поле для поиска по названию или ИНН
    communal_payment {WebElemnt} - ссылка на выбор категории "ЖКХ"
    proposal_list {WebElemnt} - список совпадений, при вводе значений в search_input
    '''

    search_input = Find(
        by=By.CSS_SELECTOR, value="input[placeholder*='Название или ИНН получателя']"
        )
    communal_payment = Find(by=By.CSS_SELECTOR, value="div[aria-label='ЖКХ'")
    proposal_list = Finds(by=By.CSS_SELECTOR, value="div[data-qa-file='GridColumn']")

    def proposal_list_text(self):
        """Возвращает текст элементов из списка совпадений

        Returns:
            [List]
        """
        return [provider.text for provider in self.proposal_list]

    def stateless_input(self, name):
        """Поиск по названию/ИНН. После ввода в поискову строку, ожидает появление списка совпадений

        Arguments:
            name {str} -- [Название/ИНН]
        """

        self.search_input.send_keys(name)
        wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[data-qa-file='GridColumn']")))
Example #13
0
class DocumentsPage(AbstractBasePage, unittest.TestCase):
    reviewDocumentsHeader = Find(
        by=By.XPATH,
        value='.//*[@class="container"]/child::*[text()="Review Documents"]')
    markAsSubmittedFirst = Find(by=By.XPATH,
                                value='(.//*[text()="Mark as submitted"])[1]')
    markAsSubmittedSecond = Find(by=By.XPATH,
                                 value='(.//*[text()="Mark as submitted"])[2]')
    markAsSubmittedThird = Find(by=By.XPATH,
                                value='(.//*[text()="Mark as submitted"])[3]')
    sendButton = Find(by=By.XPATH, value='.//*[text()="Send"]')
    almostThereHeader = Find(by=By.XPATH, value='.//*[text()="Almost there!"]')
    sendButtonOnAlmostThereScreen = Find(
        by=By.XPATH,
        value='.//*[text()="Almost there!"]/following::*[text()="Send"]')
    congrats = Find(by=By.XPATH, value='.//*[text()="Congratulations!"]')
    okButton = Find(by=By.XPATH, value='.//*[text()="OK"]')
    linkAccBreadCrumb = Find(by=By.XPATH, value='.//*[text()="Link Accounts"]')

    def __init__(self):
        AbstractBasePage.__init__(
            self,
            "https://advisors.stratifi.com/advisor/investors/17/documents")

# --------------Clicks-----------------------

    def mark_all_documents_as_signed(self):
        self.markAsSubmittedFirst.click()
        self.markAsSubmittedSecond.click()
        self.markAsSubmittedThird.click()

    def press_send_button(self):
        self.sendButton.click()

    def press_ok_button(self):
        self.okButton.click()

    def press_send_button_on_almost_there_screen(self):
        self.sendButtonOnAlmostThereScreen.click()

    def press_link_acc_breadcrumb(self):
        self.linkAccBreadCrumb.click()

# ---------------Asserts-------------------------------

    def check_if_documents_page_is_loaded(self):
        assert self.is_element_present(
            "reviewDocumentsHeader",
            timeout=20), "Unable to load Review Documents Page"

    def check_if_almost_there_shown(self):
        assert self.is_element_present(
            "almostThereHeader",
            timeout=20), "Almost there! screen was not shown"

    def check_if_congrats_massage_was_shown(self):
        assert self.is_element_present(
            "congrats", timeout=20), "Congratulations! message was not shown"
Example #14
0
class MainPage(BasePage):
    ver_label = Find(by=By.XPATH, value='//*[@id="verNo"]/div')
    reboot_link_btn = Find(by=By.LINK_TEXT, value="Reboot")
    reboot_ok_btn = Find(by=By.XPATH, value="//button[@class='button green']")
    label_list = Finds(
        by=By.XPATH,
        value=
        '//div[@class="ant-col ant-form-item-control-wrapper"]/div/span/div/div[@class="ant-row"]/div[1]'
    )
Example #15
0
 def __init__(self, product_entry):
     self.a_link = Find(by=By.CSS_SELECTOR,
                        value="a.s-access-detail-page",
                        context=product_entry)
     self.name = Find(by=By.CSS_SELECTOR,
                      value="h2.s-access-title",
                      context=product_entry).get_attribute('data-attribute')
     self.dash_name = '-'.join(self.name.split(' '))
     self.url = self.a_link.get_attribute('href')
Example #16
0
class CalendarPage(BasePage):
    days_list = Finds(Day,
                      by=By.XPATH,
                      value="//div[@class='cal_month_day ng-scope']")
    without_booking = Find(by=By.XPATH,
                           value="//label[@for='hide-without-booking']")
    preloader_image = Find(by=By.XPATH,
                           value="//img[@src='/assets/images/preloader.gif']")
    view_all_links = Finds(by=By.XPATH, value=".//a[text()='[View All]']")
Example #17
0
class Price(BasePage):
    min = Find(Textfield, By.XPATH, value='//*[@id="price[min]"]')
    max = Find(Textfield, By.XPATH, value='//*[@id="price[max]"]')
    ok = Find(by=By.ID, value='submitprice')

    def price(self, min, max):
        self.min.send_keys(min)
        self.min.send_keys(Keys.TAB)
        self.max.send_keys(max)
        self.ok.click()
Example #18
0
class JakDojadePage(BasePage):
    url = 'https://jakdojade.pl/wroclaw/trasa/'

    from_field = Find(by=By.CSS_SELECTOR, value='.cn-direction-a input')
    to_field = Find(by=By.CSS_SELECTOR, value='.cn-direction-b input')
    find_routes = Find(by=By.CSS_SELECTOR,
                       value='#cn-planner button.cn-planner-action-button')

    header = Find(by=By.CSS_SELECTOR, value='header')

    routes = Finds(RoutePropositionWidget,
                   By.CSS_SELECTOR,
                   value='.cn-planner-routes-results')
Example #19
0
class LoginPage(BasePage):
    username_input = Find(by=By.CSS_SELECTOR, value="input[type='text'][placeholder='Ник или e-mail']")
    password_input = Find(by=By.CSS_SELECTOR, value="input[type='password']")
    submit_button = Find(by=By.XPATH, value="//div/button")

    def type_username(self, username):
        self.username_input.send_keys(username)

    def type_password(self, password):
        self.password_input.send_keys(password)

    def click_submit(self):
        self.submit_button.click()
Example #20
0
class GooglePage(BasePage):
    url = "https://www.google.com"
    search_field = Find(by=By.NAME, value="q")
    search_button = Find(by=By.NAME, value="btnK")

    def open(self):
        BasePage.open(self)
        assert "Google" in get_driver_no_init().title

    def search(self, text_to_search):
        self.search_field.send_keys(text_to_search)
        self.search_field.submit()
        return ResultPage()
class RequestOFFPage(BasePage):

    url = 'https://ci004.godo.io/guide_requestOff.aspx'
    request_off_entry = Finds(
        by=By.XPATH,
        value="//tr[@class='row']|//tr[@class='odd']|//tr[@class='even']")
    approval_dropdown = Finds(
        by=By.XPATH, value="//select[contains(@id, 'requestoff_status_')]")
    not_approved_button = Find(by=By.XPATH,
                               value="//label[@class ='btn btn-danger']")
    approved_button = Find(by=By.XPATH,
                           value="//label[@class ='btn btn-success']")
    tables = Finds(by=By.XPATH, value="//table[@id = 'dtRequestOff']")
    rows = Finds(by=By.XPATH, value="//*[@id='dtRequestOff']/tbody/tr")
Example #22
0
    def __init__(self, asin):
        super(DetailsPage, self).__init__(driver=Driver.get())
        self.list_asin = asin
        self.asin = Find(by=By.XPATH,
                         value="//li[b[contains(text(), 'ASIN:')]]",
                         context=self).text.split(':')[1].strip()
        self.string_date_first = Find(
            by=By.XPATH,
            value=
            "//li[b[contains(text(), 'Date first available at Amazon.com.au:')]]",
            context=self).text.split(':')[1].strip()

        self.date_first = datetime.strptime(self.string_date_first, "%d %B %Y")
        self.body = Find(by=By.TAG_NAME, value="body", context=self)
Example #23
0
class LaptopsPageLocators(BasePage):
    laptops_name = Finds(by=By.XPATH,
                         value='.//*[@class="ModelFilter__CheckboxLink"]/a')

    laptops_price_min_input = Find(by=By.CSS_SELECTOR, value="#minnum_45")
    laptops_price_max_input = Find(by=By.CSS_SELECTOR, value="#maxnum_45")

    show_laptops_diagonal_results = Find(
        by=By.XPATH, value=".//*[@id='Attr_prof_5828']/div/div[2]/span[1]")
    show_laptops_name_results = Find(
        by=By.XPATH, value=".//*[@id='Attr_prof_1000']/div/div[2]/span[1]")

    diagonal_checkbox = Finds(by=By.XPATH,
                              value='.//*[@class="ModelFilter__CheckboxLink"]')
Example #24
0
class MainPage(BasePage):

    account_button = Find(by=By.XPATH, value="//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a")
    logout_button = Find(by=By.XPATH, value="//*/a[contains(text(), 'Выйти')]")

    def __init__(self, driver):
        self.driver = driver
        self.wait = WebDriverWait(driver, 10)
        super(MainPage, self).__init__(url="https://mail.google.com/mail/#inbox", driver=driver)

    def logout(self):
        self.account_button.click()
        self.wait.until(expected_conditions.visibility_of(self.logout_button))
        self.logout_button.click()
class FlightResultsPage(BasePage):
    flightList = Find(by=By.XPATH, value='.//div[@id="flight-listings"]')
    flightPrice = Find(by=By.XPATH,
                       value='(.//article[contains(@class,"contract-block")]/descendant::strong[contains(@id,'
                             '"TOTALFARE")]/span)[1]')

    def validate_flight_results_page_is_displayed(self):
        self.is_element_present("flightList", timeout=30), "flightList was not displayed"
        assert "air/Listing/" in self._driver.current_url, "Flights list url is not right"

    def validate_price_from_first_result_is_more_than_zero(self):
        self.is_element_present("flightPrice", timeout=10), "Can't find flightPrice"
        # Get price value from first result
        price = self.flightPrice.get_attribute('defaultvalue')
        assert price > 0, "Price value should be positive"
Example #26
0
class SitePage(BasePage):
    new_page_link = Find(Link, by=By.XPATH, value='//a[@href="/new/"]')
    cart_link = Find(Link,
                     by=By.XPATH,
                     value='//a[@class="trigger" and @href="/cart/"]')

    def open_cart_page(self):
        self.cart_link.click()

        return CartPage(self._driver)

    def open_new_products_page(self):
        self.new_page_link.click()

        return NewPage(self._driver)
Example #27
0
 def open_page_number(
     self, number
 ):  #TODO make smart pagination navigation that doesn't depend on current state
     current_page = Find(by=By.CSS_SELECTOR,
                         value="span.pagnCur",
                         context=self)
     logging.info(' '.join([current_page.text, str(number)]))
     if current_page.text == str(number):
         pass
     else:
         xpath_page_link = '//span[contains(@class, "pagnLink")]/a[contains(text(), "%d")]' % number
         logging.info(xpath_page_link)
         page_link = Find(by=By.XPATH, value=xpath_page_link, context=self)
         page_link.click()
     self.update_product_list()
Example #28
0
class Headers(BasePage):
    button_zapis = Find(by=By.XPATH, value=".//a[@class='zapisatsya']")

    def __init__(self):
        self.url = 'http://old.qalight.com/'
        self.__driver = webdriver.Chrome()
        #BasePage.__init__(self, url='http://oldqalight.com')
        BasePage._driver = self.__driver
        self._driver.maximize_window()

    def open_home_page(self):
        if not self.url:
            raise WebiumException('Can\'t open page without url')
        self.__driver.get(self.url)
        logger.info('open home page')

    def open_zapisatsya(self):
        try:
            window_before = self.__driver.window_handles[:]
            #print(window_before)
            self.button_zapis.click()
            window_after = self.__driver.window_handles[-1]
            #print(window_after)
            self.__driver.switch_to_window(window_after)
            self.close_page()
            self.__driver.switch_to_window(window_before[0])
        except Exception as exc:
            logger.error('open_zapisatsya: {0}'.format(exc))
            raise exc
        else:
            logger.info('open_zapisatsya')

    def close_page(self):
        self.__driver.close()
Example #29
0
class Sidebar(KibanaBasePage):
    '''
    Kibana Login Page
    '''

    DISCOVER = 'Discover'
    VISUALIZE = 'Visualize'
    DASHBOARD = 'Dashboard'
    TIMELION = 'Timelion'
    MACHINE_LEARNING = 'Machine Learning'
    GRAPH = 'Graph'
    DEV_TOOLS = 'Dev Tools'
    MONITORING = 'Monitoring'
    MANAGEMENT = 'Management'
    COLLAPSE = 'Collapse'
    EXPAND = 'Expand'
    LOGOUT = 'Logout'

    sidebar_main = Find(by=By.CLASS_NAME, value='global-nav__links')
    sidebar_links = Finds(Link, **data_test_subj('global-nav-link appLink'))

    def __init__(self, **kwargs):
        super().__init__(**kwargs)

    def loaded(self):
        wait(lambda: self.is_element_present('sidebar_main') is True)

    def click_link_text(self, text):
        for link in self.sidebar_links:
            if link.text == text:
                link.click()
                break

    def is_link_visible(self, text):
        return text in self.sidebar_main.text.split('\n')
class LoginPage(BasePage):
    email_field = Find(by=By.ID, value="login-email")
    password_field = Find(by=By.ID, value="login-password")
    submit_button = Find(by=By.XPATH, value="//form/button[.='Log In']")

    def type_email(self, value):
        wait(self.email_field.is_displayed)
        self.email_field.send_keys(value)

    def type_password(self, value):
        wait(self.password_field.is_displayed)
        self.password_field.send_keys(value)

    def click_submit_button(self):
        wait(self.submit_button.is_displayed)
        self.submit_button.click()