使用Protractor从日历中选择angular-ui日期选择器值

时间:2016-10-11 17:33:42

标签: protractor e2e-testing

我的日期选择器结构如下:

<button type="button" class="date-picker-item">
 <span>1</span>
</button>
<button type="button" class="date-picker-item">
 <span>2</span>
</button>

等。

我正在尝试使用量角器api中的by.cssContainingText。

element.all(by.cssContainingText('.date-picker-item > span', day))

但它不是在分钟选择它。我需要以不同的方式瞄准这个目标吗?

提前多多感谢。

1 个答案:

答案 0 :(得分:0)

在我的一个项目中,我写了这样的函数:

elementDate: function(inArray,object){
    var day = inArray.day.toString();
    var cYear = new Date();
    var cYear = cYear.getFullYear();
    var year = inArray.year;
    var month = inArray.month;
    object.click();
    element(by.css('.btn.btn-sm.btn-danger.uib-clear.ng-binding')).click().then(function(){
      return  object.click()
    });
    element(by.css('button[ng-click="toggleMode()"]')).click();
    if(cYear > year){
      for(var i = cYear; i > year; i--){

        object.element(by.css('.btn.btn-default.btn-sm.pull-left.uib-left')).click();
      };
    }
    else if (cYear < year) {

      for(var i = cYear; i < year; i++){
        object.element(by.css('.btn.btn-default.btn-sm.pull-right.uib-right')).click();
      };
    }
    else{
    }
    element(by.cssContainingText('.btn.btn-default', month)).click();
    element(by.cssContainingText('.uib-day .btn.btn-default.btn-sm', day)).click();
    return this;
  },

它需要dataPicker元素(例如,如果你有2个数据选择器,一个将是name =“DatePick1”,第二个名称=“DatePick2”作为元素名称)和日期数组,我认为你应该只改变by.css元素对于您的项目,我建议使用fireBug来执行此操作