我正在使用量角器开发e2e。有一种情况我需要选择一个未来日期(从今天起10天),一个过去日期(从今天起5天)。如果今天的日期是2017年12月20日,我需要从两个独立的日期选择器中选择12/30/2017(未来日期)和12/15/2017(过去的日期)。我尝试了以下代码,但即使通过添加天数(10)来指定未来日期,也会每天选择今天的日期。未来日期在控制台上正确打印,但它是从datepicker中选择今天的日期。请让我怎么做。
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 && (new_consent.effectiveDate.$dirty || submitted)}"
style="">
答案 0 :(得分:0)
之前我遇到过同样的问题。对我而言,日期选择器没有被量角器聚焦,因此日期没有发送到输入字段。
首先点击它然后传递键,尝试聚焦元素。
var picker = element(by.model('case.consentEffectiveDate'));
picker.click().sendKeys(today);
如果有可能预先填写日期,您可以这样写,以便在输入新日期之前从选择器中删除上一个日期。
picker.click().sendKeys(protractor.Key.CONTROL, "a", protractor.Key.NULL, today);
希望这有帮助