【问题标题】:Automation of selecting future and past date from datepicker从日期选择器中自动选择未来和过去的日期
【发布时间】:2017-12-20 07:34:43
【问题描述】:

我正在使用量角器进行 e2e。有一种情况,我需要选择一个未来的日期(从今天开始提前 10 天),一个过去的日期(从今天开始的 5 天)。如果今天的日期是 2017 年 12 月 20 日,我需要从两个单独的日期选择器中选择 12/30/2017(未来日期)和 12/15/2017(过去日期)。我尝试了下面的代码,但是即使通过添加天数(10)来指定未来日期,每次都会选择今天的日期。未来日期正确打印在控制台上,但它是从日期选择器中选择今天的日期。请让我如何做到这一点。

function consentEffectiveDate(){

        var picker = element(by.model('case.consentEffectiveDate'));
        // get today's date
        var today = new Date();
        var dd = today.getDate()+10;
        console.log("date: "+dd);
        var mm = today.getMonth() + 1; //January is 0!
        var yyyy = today.getFullYear();

        if (dd < 10) {
            dd = '0' + dd
        }

        if (mm < 10) {
            mm = '0' + mm
        }
        today = mm + '/' + dd + '/' + yyyy;
        picker.sendKeys(today);
        console.log("date:"+today);

提前感谢您的帮助。

html代码

<input type="text" readonly="readonly"
    class="form-control effectiveDate ng-pristine ng-valid ng-valid-pattern ng-touched" 
    name="effectiveDate" id="effectiveDate"
    ng-model="case.consentEffectiveDate" placeholder="MM/DD/YYYY"
    ng-pattern="/^([0]?\d{1}|[1][0-2])\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([1-9]{1}\d{3}))$/" 
    data-ng-change="model.compareDates(case.consentEffectiveDate, case.consentExpiresDate, new_consent);"
    ng-class="{ 'has-error' : new_consent.effectiveDate.$invalid &amp;&amp; (new_consent.effectiveDate.$dirty || submitted)}"
    style="">

【问题讨论】:

  • 您能否使用日期选择器的 HTML 代码更新您的问题?

标签: angularjs datepicker protractor


【解决方案1】:

我之前遇到过同样的问题。对我来说,日期选择器没有被量角器聚焦,因此日期没有发送到输入字段。

尝试通过先单击元素然后传递键来聚焦元素。

var picker = element(by.model('case.consentEffectiveDate'));
picker.click().sendKeys(today);

如果有可能预先填写了日期,您可以这样写,以便在输入新日期之前从选择器中删除前一个日期。

picker.click().sendKeys(protractor.Key.CONTROL, "a", protractor.Key.NULL, today);

希望对你有帮助

【讨论】:

  • 我尝试了两种可能性,聚焦和预填日期,但对我不起作用。
  • 你能帮助我使用评估(picker.evaluate()),如何使用和量角器文档吗?
  • 嗯,好的。您能否使用日期选择器的 html 代码以及@HemaLatha 更新您的问题?这将有助于识别问题。
  • html代码&lt;input type="text" readonly="readonly" class="form-control effectiveDate ng-pristine ng-valid ng-valid-pattern ng-touched" name="effectiveDate" id="effectiveDate" ng-model="case.consentEffectiveDate" placeholder="MM/DD/YYYY" ng-pattern="/^([0]?\d{1}|[1][0-2])\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([1-9]{1}\d{3}))$/" data-ng-change="model.compareDates(case.consentEffectiveDate, case.consentExpiresDate, new_consent);" ng-class="{ 'has-error' : new_consent.effectiveDate.$invalid &amp;amp;&amp;amp; (new_consent.effectiveDate.$dirty || submitted)}" style=""&gt;
猜你喜欢
  • 2016-07-03
  • 2023-02-07
  • 2017-05-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-02
  • 2021-04-15
相关资源
最近更新 更多