使用量角器自动化datepicker和timepicker

时间:2017-09-20 11:53:22

标签: selenium jasmine protractor

使用量角器自动化网站,我无法知道如何自动化给定的datepicker和timepicker。

image 1 image 2

image 3

3 个答案:

答案 0 :(得分:0)

您可以使用2种方式获取日期。我正在向您展示如何执行此操作

使用xpath driver.findElement(By.xpath("//table[@class='month2']//div[.='19']")).click();

使用JavascriptExecutor也可以输入日期

((JavascriptExecutor) driver).executeScript("document.getElementsByClassName('date-filed-top-date js-common-check-in-5 referrer_daterangepicker referrer_drp_start')[0].setAttribute('value', '2017-10-21')");  
  

//将date-filed-top-date js-common-check-in-5 referrer_daterangepicker referrer_drp_start替换为您的班级

答案 1 :(得分:0)

如果clear()和sendKeys()不赢取触发datePicker对话框弹出,请使用选项1,否则使用选项2.

1)使用sendkeys输入日期

function inputDate(targetEle, date) {
    targetEle.clear();
    return targetEle.sendKeys(date);
}

function inputStartDate(date) {
   return inputDate(element(by.css(#startDate)), date);
}

function inputEndDate(date) {
   return inputDate(element(by.css(#endDate)), date);
}

inputStartDate('09/20/2017 8:30 AM');
inputEndDate('09/23/2017 8:30 PM');

2)使用javascript设置输入文本框的属性值

function inputDate(targetEle, date) {
   return browser.executeScript('arguments[0].value=arguments[1];', 
            targetEle.getWebElement(), date);
}

function inputStartDate(date) {
   inputDate(element(by.css(#startDate)), date);
}

function inputEndDate(date) {
   inputDate(element(by.css(#endDate)), date);
}

inputStartDate('09/20/2017 8:30 AM');
inputEndDate('09/23/2017 8:30 PM');

答案 2 :(得分:0)

element(by.xpath("")).sendKeys("10/10/002018 03:00PM");