pages/desktop/developers/manage_authors_and_license.py (76 lines of code) (raw):
from pypom import Page
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
class ManageAuthorsAndLicenses(Page):
_radio_button_mozilla_public_license_selector = (By.XPATH, 'id_builtin_0')
_radio_button_gnu_general_public_license_selector = (By.ID, 'id_builtin_1')
_save_changes_button_selector = (By.CSS_SELECTOR, 'div.listing-footer button')
_notification_box_success_selector = (By.CSS_SELECTOR, '.notification-box > h2:nth-child(1)')
_authors_text_selector = (By.CSS_SELECTOR, 'tbody:nth-child(1) > tr:nth-child(1) > th')
_licenses_text_selector = (By.CSS_SELECTOR, 'tbody:nth-child(1) > tr:nth-child(3) > th:nth-child(1) > span')
_license_agreement_selector = (By.CSS_SELECTOR, 'tbody:nth-child(1) > tr:nth-child(4) > th:nth-child(1) > span')
_license_agreement_checkbox = (By.ID, 'id_has_eula')
_please_specify_license_text_selector = (By.CSS_SELECTOR, '.eula > label:nth-child(1)')
_license_agreement_textbox_selector = (By.ID, 'id_eula_0')
_privacy_policy_selector = (By.CSS_SELECTOR, 'tbody:nth-child(1) > tr:nth-child(5) > th:nth-child(1) > span')
_privacy_policy_checkbox_selector = (By.ID, 'id_has_priv')
_please_specify_privacy_policy_text_selector = (By.CSS_SELECTOR, '.priv > label:nth-child(1)')
_privacy_policy_textbox_selector = (By.ID, 'id_privacy_policy_0')
@property
def radio_button_mozilla_public_license(self):
return self.find_element(*self._radio_button_mozilla_public_license_selector)
@property
def radio_button_general_public_license(self):
return self.find_element(*self._radio_button_gnu_general_public_license_selector)
@property
def notification_box_success(self):
return self.find_element(*self._notification_box_success_selector)
@property
def authors_text_element(self):
return self.find_element(*self._authors_text_selector)
@property
def license_text_element(self):
return self.find_element(*self._licenses_text_selector)
@property
def license_agreement_selector(self):
return self.find_element(*self._license_agreement_selector)
@property
def license_agreement_checkbox(self):
return self.find_element(*self._license_agreement_checkbox)
@property
def please_specify_license_text(self):
return self.find_element(*self._please_specify_license_text_selector)
@property
def license_agreeement_textbox(self):
return self.find_element(*self._license_agreement_textbox_selector)
@property
def privacy_policy(self):
return self.find_element(*self._privacy_policy_selector)
@property
def privacy_policy_checkbox(self):
return self.find_element(*self._privacy_policy_checkbox_selector)
@property
def please_specify_privacy_policy_text(self):
return self.find_element(*self._please_specify_privacy_policy_text_selector)
@property
def privacy_policy_textbox(self):
return self.find_element(*self._privacy_policy_textbox_selector)
@staticmethod
def open_manage_authors_and_licenses_page(selenium, base_url, addon):
return selenium.get(f"{base_url}/developers/addon/{addon}/ownership")
def wait_for_page_to_load(self):
self.wait.until(
EC.visibility_of_element_located(self._radio_button_gnu_general_public_license_selector)
)
return self
def wait_for_notification_box_success(self):
self.wait.until(
EC.visibility_of_element_located(self._notification_box_success_selector)
)
return self
def click_mozilla_public_license(self):
return self.find_element(*self._radio_button_mozilla_public_license_selector).click()
def click_general_public_license(self):
return self.find_element(*self._radio_button_gnu_general_public_license_selector).click()
def click_save_changes_button(self):
return self.find_element(*self._save_changes_button_selector).click()