如何使用Protractor和Jasmine验证某些下拉列表中的默认值是否为当前日期

时间:2019-07-04 09:03:46

标签: protractor automated-tests

我是量角器的新手,并且正在验证某些下拉列表中的默认值为当前日期:月,日和年

这是我写的代码:

with open('signature.json') as sig:
    user = json.load(sig)                                               #load signature block of sender from json file into 'user'


path = user['File_path']                                                #storing path of input file in 'path'



with open(path,'r', newline='') as f:                                   #opening input csv file
    reader=csv.reader(f,delimiter=',')
    next(reader)

    for user_data in reader:                                            #iterating through file
        d[user_data[4]]=user_data[0]                                    #assigning name as value and  email id as key

return d     

我运行测试时失败:

  • 预计“七月”等于7。
  • 期望'4'等于4。
  • 预计“ 2019”等于2019。

3 个答案:

答案 0 :(得分:0)

  
      
  • 期望'4'等于4。
  •   
  • 预计“ 2019”等于2019。
  •   

与元素交互并编写getText()时。它以值作为文本,但是如果要与数字进行比较,则必须将文本转换为数字,然后进行验证。

答案 1 :(得分:0)

DT::datatable( class = "display nowrap", extensions = c('Buttons','Scroller'), ...... 方法返回一个promise,该promise将使用元素的可见文本(字符串)进行解析。因此,您必须将getText()currentDay转换为字符串。

currentYear

答案 2 :(得分:0)

感谢您的回答。我设法解决了该问题,并在一个月内解决了该问题。 这是我的最终代码

function checkStartDateIsCurrentDate(){

    let date = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
    let currentMonth = date.getMonth();
    let months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
    let currentDay = date.getDate() - 1;
    let currentYear = date.getFullYear();

    this.startDateMonthDropdown.getText().then(function (month) {
        expect(month).toEqual(months[currentMonth])
    });
    this.startDayInput.getAttribute('value').then(function (day) {
        day = parseInt(day);
        expect(day).toEqual(currentDay)
    });
    this.startYearDropdown.getText().then(function (year) {
        year = parseInt(year);
        expect(year).toEqual(currentYear)
    });
}