コード例 #1
0
 def confirm(self):
     el = Button(
         css=("input[data-ng-model="
              "'rsaCheckResult.confirmSelectionPersonalData']")
     ).__get__(self, self.__class__)
     el.click()
     el.click()
コード例 #2
0
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)
コード例 #3
0
 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()
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
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)
コード例 #8
0
 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()
コード例 #9
0
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)
コード例 #10
0
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)
コード例 #11
0
 def with_trailer(self):
     el = Button(
         css="input[ng-model='osagoPolicy.vehicle.withTrailer']"
     ).__get__(self, self.__class__)
     el.click()
     el.click()
コード例 #12
0
 def confirm(self):
     el = Button(
         css="input[ng-model='processPersonalDataConfirm.value']").__get__(
             self, self.__class__)
     el.click()
     el.click()
コード例 #13
0
 def delivery_electronically(self):
     el = Button(css="input[text='Электронно']").__get__(
         self, self.__class__)
     el.click()
     el.click()
コード例 #14
0
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
コード例 #15
0
 def registration(self):
     el = Button(
         css="input[text='Следует к месту регистрации']"
     ).__get__(self, self.__class__)
     el.click()
     el.click()
コード例 #16
0
 def owner_is_insurer(self):
     el = Button(css="input[text='Является страхователем']").__get__(
         self, self.__class__)
     el.click()
     el.click()
コード例 #17
0
 def russia(self):
     el = Button(
         css="input[text='На территории РФ']"
     ).__get__(self, self.__class__)
     el.click()
     el.click()