def confirm(self): el = Button( css=("input[data-ng-model=" "'rsaCheckResult.confirmSelectionPersonalData']") ).__get__(self, self.__class__) el.click() el.click()
class PolicyDriversPage(PageObject): _NG_MODEL = "input.ng-empty[ng-model='driver.{}']".format _NG_MODEL_DOC = "input.ng-empty[ng-model='driver.document.{}']".format lastname = Textbox(css=_NG_MODEL("lastname")) firstname = Textbox(css=_NG_MODEL("name")) middlename = Textbox(css=_NG_MODEL("middlename")) birthday = Textbox(css=_NG_MODEL("birthday")) doc_series = Textbox(css=_NG_MODEL_DOC("series")) doc_number = Textbox(css=_NG_MODEL_DOC("number")) experience_from = Textbox(css=_NG_MODEL_DOC("experienceFrom")) add_driver = Button(css="a[ng-click='addDriver()']") prev_step = Button(css="button[ng-click='prevStep()']") next_step = Button(css="button[ng-click='nextStep()']") def multidrive(self, yes): if yes: el = Button(css="#multidrive_Y").__get__(self, self.__class__) else: el = Button(css="#multidrive_N").__get__(self, self.__class__) el.click() el.click() def prev(self): from osago.ugsk.pages.policy_vehicle import PolicyVehiclePage self.prev_step.click() return PolicyVehiclePage(self.webdriver) def next(self): from osago.ugsk.pages.policy_terms import PolicyTermsPage self.next_step.click() return PolicyTermsPage(self.webdriver)
def driver_sex(self, index, value): if value.lower() == 'мужчина': Button(css="input[name='driverSex%d'][value='M']" % index).__get__( self, self.__class__).click() if value.lower() == 'женщина': Button(css="input[name='driverSex%d'][value='F']" % index).__get__( self, self.__class__).click()
class PolicyVehiclePage(PageObject): _NG_MODEL_DOC = ("[ng-model='vehicle.documents" "[vehicle.currentDocumentType].{}']").format purpose = Select(css="select[ng-model='osagoPolicy.vehicle.purposeOfUse']") mark = Select(css="select[ng-model='vehicle.mark']") model = Select(css="select[ng-model='vehicle.model']") year = Textbox(css="input[ng-model='vehicle.year']") category = Select(css="select[ng-model='vehicle.category']") power = Textbox(css="input[ng-model='vehicle.power']") power_kw = Textbox(css="input[ng-model='vehicle.powerKw']") max_mass = Textbox(css="input[ng-model='vehicle.maxMass']") seats_count = Textbox(css="input[ng-model='vehicle.seatsCount']") doc_type = Select(css="select[ng-model='vehicle.currentDocumentType']") doc_series = Textbox(css=_NG_MODEL_DOC("series")) doc_number = Textbox(css=_NG_MODEL_DOC("number")) doc_date_of_issue = Textbox(css=_NG_MODEL_DOC("dateOfIssue")) reg_number = Textbox(css="input[ng-model='vehicle.regNumber']") vin = Textbox(css="input[ng-model='vehicle.vin']") inspection_card_number = Textbox( css="input[ng-model='osagoPolicy.vehicle.inspectionCard.number']") inspection_card_date = Textbox( css="input[ng-model='osagoPolicy.vehicle.inspectionCard.term']") prev_step = Button(css="button[ng-click='prevStep()']") next_step = Button(css="button[ng-click='nextStep()']") def with_trailer(self): el = Button( css="input[ng-model='osagoPolicy.vehicle.withTrailer']" ).__get__(self, self.__class__) el.click() el.click() def russia(self): el = Button( css="input[text='На территории РФ']" ).__get__(self, self.__class__) el.click() el.click() def registration(self): el = Button( css="input[text='Следует к месту регистрации']" ).__get__(self, self.__class__) el.click() el.click() def prev(self): from osago.ugsk.pages.policy_owner import PolicyOwnerPage self.prev_step.click() return PolicyOwnerPage(self.webdriver) def next(self): from osago.ugsk.pages.policy_drivers import PolicyDriversPage self.next_step.click() return PolicyDriversPage(self.webdriver)
class PolicyInsurerPage(PageObject): _NG_MODEL = "[ng-model='contractor.{}']".format _NG_MODEL_DOC = "[ng-model='contractor.document.{}']".format lastname = Textbox(css=_NG_MODEL('lastname')) firstname = Textbox(css=_NG_MODEL('name')) middlename = Textbox(css=_NG_MODEL('middlename')) birthday = Textbox(css=_NG_MODEL('birthday')) doc_type = Select(css=_NG_MODEL('documentType')) doc_series = Textbox(css=_NG_MODEL_DOC('series')) doc_number = Textbox(css=_NG_MODEL_DOC('number')) phone = Textbox(css=_NG_MODEL('telephones.mobile')) registration_address = AutocompleteTextbox( css=_NG_MODEL('registrationAddress')) flat_number = Textbox(css=_NG_MODEL('registrationAddressFlatNumber')) next_step = Button(css="button[ng-show='next_step']") def confirm(self): el = Button( css="input[ng-model='processPersonalDataConfirm.value']").__get__( self, self.__class__) el.click() el.click() def next(self): from osago.ugsk.pages.policy_owner import PolicyOwnerPage self.next_step.click() return PolicyOwnerPage(self.webdriver)
class PolicyOwnerPage(PageObject): _NG_MODEL = "[ng-model='contractor.{}']".format _NG_MODEL_DOC = "[ng-model='contractor.document.{}']".format lastname = Textbox(css=_NG_MODEL('lastname')) firstname = Textbox(css=_NG_MODEL('name')) middlename = Textbox(css=_NG_MODEL('middlename')) birthday = Textbox(css=_NG_MODEL('birthday')) doc_type = Select(css=_NG_MODEL('documentType')) doc_series = Textbox(css=_NG_MODEL_DOC('series')) doc_number = Textbox(css=_NG_MODEL_DOC('number')) phone = Textbox(css=_NG_MODEL('telephones.mobile')) registration_address = AutocompleteTextbox( css=_NG_MODEL('registrationAddress')) flat_number = Textbox(css=_NG_MODEL('registrationAddressFlatNumber')) prev_step = Button(css="button[ng-click='prevStep()']") next_step = Button(css="button[ng-click='nextStep()']") def wait_for_load(self, timeout=60): logging.debug("Waiting for loader ...") WebDriverWait(self.webdriver, timeout).until_not( lambda d: d.find_element_by_css_selector( "center[data-ng-if='isLoadFormOsago']"), 'Waiting for loader has expired!') def owner_is_insurer(self): el = Button(css="input[text='Является страхователем']").__get__( self, self.__class__) el.click() el.click() def prev(self): from osago.ugsk.pages.policy_insurer import PolicyInsurerPage self.prev_step.click() return PolicyInsurerPage(self.webdriver) def next(self): from osago.ugsk.pages.policy_vehicle import PolicyVehiclePage self.next_step.click() return PolicyVehiclePage(self.webdriver)
class PolicyExtraPage(PageObject): prev_step = Button(css="button[ng-click='prevStep()']") next_step = Button(css="button[ng-click='nextStep()']") def delivery_electronically(self): el = Button(css="input[text='Электронно']").__get__( self, self.__class__) el.click() el.click() def prev(self): from osago.ugsk.pages.policy_terms import PolicyTermsPage self.prev_step.click() return PolicyTermsPage(self.webdriver) def next(self): from osago.ugsk.pages.policy_payment import PolicyPaymentPage self.next_step.click() return PolicyPaymentPage(self.webdriver)
def multidrive(self, yes): if yes: el = Button(css="#multidrive_Y").__get__(self, self.__class__) else: el = Button(css="#multidrive_N").__get__(self, self.__class__) el.click() el.click()
class PolicyTermsPage(PageObject): policy_date_start = Textbox(css="input[ng-model='osagoPolicy.dateStart']") policy_date_end = Textbox(css="input[ng-model='osagoPolicy.dateEnd']") period = Textbox( css="input[ng-model='osagoPolicy.periods[$index].period']") period_start = Textbox( css="input[ng-model='osagoPolicy.periods[$index].start']") period_end = Textbox( css="input[ng-model='osagoPolicy.periods[$index].end']") prev_step = Button(css="button[ng-click='prevStep()']") next_step = Button(css="button[ng-click='nextStep()']") def prev(self): from osago.ugsk.pages.policy_drivers import PolicyDriversPage self.prev_step.click() return PolicyDriversPage(self.webdriver) def next(self): from osago.ugsk.pages.policy_extra import PolicyExtraPage self.next_step.click() return PolicyExtraPage(self.webdriver)
class PolicyPaymentPage(PageObject): redirect = Button(css="a[data-ng-click='selectionOsagoStartRedirect()']") prev_step = Button(css="button[ng-click='prevStep()']") def wait_for_rsa_check(self, timeout=300): logging.debug("Waiting for RSA check ...") WebDriverWait(self.webdriver, timeout).until_not( lambda d: d.find_elements_by_css_selector( "div[data-ng-bind='options.text']"), 'Waiting for RSA check has expired') def confirm(self): el = Button( css=("input[data-ng-model=" "'rsaCheckResult.confirmSelectionPersonalData']") ).__get__(self, self.__class__) el.click() el.click() def prev(self): from osago.ugsk.pages.policy_extra import PolicyExtraPage self.prev_step.click() return PolicyExtraPage(self.webdriver)
def with_trailer(self): el = Button( css="input[ng-model='osagoPolicy.vehicle.withTrailer']" ).__get__(self, self.__class__) el.click() el.click()
def confirm(self): el = Button( css="input[ng-model='processPersonalDataConfirm.value']").__get__( self, self.__class__) el.click() el.click()
def delivery_electronically(self): el = Button(css="input[text='Электронно']").__get__( self, self.__class__) el.click() el.click()
class KaskoCalcPage(PageObject): pay_period = Select(css="select[name='payPeriod']") car_brand = AutocompleteTextbox(css="input[name='carBrand']") car_model = AutocompleteTextbox(css="input[name='carModel']") car_year = Select(css="select[name='year']") price = Textbox(css="input[name='price']") steal_device = AutocompleteTextbox(css="input[name='stealDevice']") is_thf_mech_device = Checkbox(css="input#isThfMechDevice") auto_race = Checkbox(css="input#autoRace") is_bank = Checkbox(css="input#isBank") dtp_count = Textbox(css="input[name='CarDamageQuanityManual']") purchase_date = Textbox(css="input[name='purchaseDate']") region = AutocompleteTextbox(css="input[name='region']") owner_address = AutocompleteTextbox(css="input[name='ownerAddress']") face = Select(css="select[name='face']") drivers_unlimit = Button(css="input#driverList-0") drivers_limit = Button(css="input#driverList-1") drivers_unlimit_22 = Button(css="input#driverList-3") add_driver = Button(css="input[name='driverCount'] + a") payment_1 = Button(css="input#payment-1") payment_2 = Button(css="input#payment-2") another_sk = Checkbox(css="input#AnotherSK") previous_sk = Select(css="select[name='prevInsurantID']") calculation = Button(css="input[value='Рассчитать']") code = Textbox(css="input[name='code']") confirm = Button(css="input[value='Подтвердить']") def driver_age(self, index, value): Textbox(name="driverAge%d" % index).__set__(self, value) def driver_stage(self, index, value): Textbox(name="driverStage%d" % index).__set__(self, value) def driver_sex(self, index, value): if value.lower() == 'мужчина': Button(css="input[name='driverSex%d'][value='M']" % index).__get__( self, self.__class__).click() if value.lower() == 'женщина': Button(css="input[name='driverSex%d'][value='F']" % index).__get__( self, self.__class__).click() def resolve_recaptcha(self, phone, recaptcha_response): self.webdriver.execute_script( """ $("input[name='phone']").val('%s'); $("textarea#g-recaptcha-response").html("%s"); ajaxSendCode(); """ % (phone, recaptcha_response)) @property def result(self): services = PageElements( xpath="//div[@class='service_item'][./div[@class='service_value']]" ).__get__(self, self.__class__) res = [] for service in services: label = service.find_element_by_xpath( "./div[@class='service_label']").text.replace( '\n', '').strip() value = service.find_element_by_xpath( "./div[@class='service_value']").text.replace( '\n', ';').strip() res.append((label, value)) return res
def registration(self): el = Button( css="input[text='Следует к месту регистрации']" ).__get__(self, self.__class__) el.click() el.click()
def owner_is_insurer(self): el = Button(css="input[text='Является страхователем']").__get__( self, self.__class__) el.click() el.click()
def russia(self): el = Button( css="input[text='На территории РФ']" ).__get__(self, self.__class__) el.click() el.click()