moztrap-tests/pages/home_page.py

55 строки
2.4 KiB
Python

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from pages.base_page import MozTrapBasePage
class MozTrapHomePage(MozTrapBasePage):
_page_title = 'Run Tests'
_select_locator = (By.CSS_SELECTOR, '.runsdrill .runsfinder .carousel .colcontent .title[title="%(item_name)s"]')
_env_select_locator = (By.CSS_SELECTOR, '#runtests-environment-form .formfield[data-title="%(env_category)s"] select')
_language_locator = (By.CSS_SELECTOR, '#runtests-environment-form .language-field select')
_os_locator = (By.CSS_SELECTOR, '#runtests-environment-form .operating-system-field select')
_submit_locator = (By.CSS_SELECTOR, '#runtests-environment-form .form-actions button[type="submit"]')
_version_homepage_locator = (By.CSS_SELECTOR, '.runsdrill .runsfinder .productversions .colcontent .title[title="%(version_name)s"][data-product="%(product_name)s"]')
def go_to_home_page(self):
self.selenium.get(self.base_url + '/')
self.is_the_current_page
def select_item(self, name):
_select_locator = (
self._select_locator[0],
self._select_locator[1] % {'item_name': name})
self.wait_for_element_present(*_select_locator)
self.find_element(*_select_locator).click()
self.wait_for_ajax()
def go_to_run_test(self, product_name, version_name, run_name, env_category_name, env_element_name):
_env_select_locator = (
self._env_select_locator[0],
self._env_select_locator[1] % {'env_category': env_category_name})
self.select_item(product_name)
self.select_item(version_name)
self.select_item(run_name)
env_select = Select(self.find_element(*_env_select_locator))
env_select.select_by_visible_text(env_element_name)
self.find_element(*self._submit_locator).click()
def is_product_version_visible(self, product):
_product_version_locator = (
self._version_homepage_locator[0],
self._version_homepage_locator[1] %
{'product_name': product['name'], 'version_name': product['version']['name']}
)
return self.is_element_visible(*_product_version_locator)