首页 > 解决方案 > 如何使用量角器在非角度网站中测试日期选择器

问题描述

请帮助正确编写日期选择器的测试。我有一个不可点击的字段,将在其中设置我选择的日期:

<input type="text" class="submit hasDatepicker" placeholder="License Expiry Date*" 
name="website_field[bGl==]" 
id="website_field_bGl" value="" size="16" 
readonly="readonly">

带有打开日​​期表单的可点击按钮:

<img class="ui-datepicker-trigger" src="images/calendar.png" alt="Select date" 
title="Select date">

月:

<select class="ui-datepicker-month" data-handler="selectMonth" data- 
event="change"><option value="0">Jan</option></select> ...

年:

<select class="ui-datepicker-year" data-handler="selectYear" data- 
event="change"><option value="2000">2000</option></select> ...

和一个脚本:

                    $(function(){
                        $( "#website_field_bGljZW5zZSBleHBpcnkgZGF0ZQ" 
).datepicker({
                            changeMonth: true,
                            changeYear: true,
                            firstDay:1,
                            dateFormat: "yy-mm-dd",
                            showOn: "button",
                            buttonImage: "images/calendar.png",
                            buttonImageOnly: true,
                            buttonText: "Select date",
                            minDate: "2000-01-01",
                            yearRange: "2000:+15"
                        }).attr("readonly", "readonly");
                    });

我需要设置一个日期,例如:2020-07-14。

这个怎么做?谢谢。

我做了一些原始的事情,它可以工作。但也许有更多的“专业”变体可用?:

    var LicenceExpiryDateInputField = 
    element(by.id('website_field_bGljZW5zZSBleHBpcnkgZGF0ZQ'));
    var LicenceExpiryDateButton = $('img.ui-datepicker-trigger');
    var LicenceExpiryDateForm = element(by.id('ui-datepicker-div'));
    var SelectMonth = $('select.ui-datepicker-month').$('[value="6"]');
    var SelectYear = $('select.ui-datepicker-year').$('[value="2020"]');
    var SelectDate = element(by.linkText('14')); 

    LicenceExpiryDateButton.click();
        expect(LicenceExpiryDateForm.isPresent()).toBe(true);
    SelectMonth.click();
        expect(SelectMonth.isSelected()).toBe(true);
        expect(SelectMonth.getText()).toEqual('Jul');
    SelectYear.click();
        expect(SelectYear.isSelected()).toBe(true);
        expect(SelectYear.getText()).toBe('2020');
    SelectDate.click();
    expect(...Here i need to check somehow LicenceExpiryDateInputField on correct data (2020-07-14)...)

标签: testingdatepickerjasmineprotractor

解决方案


推荐阅读