如何使用量角器测试日期选择器?
How to test date picker using protractor?
我正在测试使用 ngbDatepicker 的日期选择器,它只允许用户从日历中选择日期。有什么方法可以使用量角器从中选择日期吗?
<form class="form-inline">
<div class="form-group">
<div class="input-group">
<input class="form-control" placeholder="yyyy-mm-dd"
name="dp" [(ngModel)]="model" ngbDatepicker #d="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary calendar" (click)="d.toggle()" type="button"></button>
</div>
</div>
</div>
</form>
这是日期选择器的屏幕截图:
我需要的是select日期选择器中的后天。
提前致谢!!
是的,可以使用量角器选择日期。您可以模拟用户可以执行的所有行为。
因为您没有提供端到端的测试源代码。以下几点将指导您为日期选择器编写端到端测试。
const EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(element(by.css('btn-outline-secondary'))), 5000).then(() => {
element(by.css('btn-outline-secondary')).click(); // This will click calendar icon
const d = new Date().getDate()+1; // This will get you next day value
// Write your code to find next day element and click it using click() function
// Hint: Each day is a "div" with class "btn-light" and day as content of that div element
});
EC.presenceOf()
将检查日历图标按钮是否存在(并会在 5 秒后超时)。
如果存在,则它将单击该图标。因此,日历将打开。
现在,你的任务是确定第二天并select它。
可以使用 getDate()
函数来识别第二天,如上所示。
选择它也可以很容易地完成,上面给出了提示。
您可以直接将密钥发送到该日期的输入。
它的格式很棘手。从截图中我可以看到它的日/月/年
试试下面的代码:
你将需要 momentjs 包:https://www.npmjs.com/package/moment
以下是有关时刻日期格式化程序的信息:https://devhints.io/moment
const datenow = new Date();
datenow.setDate(datenow.getDate() + 1); // today + 1 day.
const moment = require('moment');
// format the date to string.
const formatedDate = moment(datenow).format('D MMM YYYY');
// send the formated date to the input.
element(by.xpath('//input[@class=\'form-control\']')).sendKeys(formatedDate);
注意:根据您的需要进行调整,这只是如何处理日期选择器的示例。
我正在测试使用 ngbDatepicker 的日期选择器,它只允许用户从日历中选择日期。有什么方法可以使用量角器从中选择日期吗?
<form class="form-inline">
<div class="form-group">
<div class="input-group">
<input class="form-control" placeholder="yyyy-mm-dd"
name="dp" [(ngModel)]="model" ngbDatepicker #d="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary calendar" (click)="d.toggle()" type="button"></button>
</div>
</div>
</div>
</form>
这是日期选择器的屏幕截图:
我需要的是select日期选择器中的后天。
提前致谢!!
是的,可以使用量角器选择日期。您可以模拟用户可以执行的所有行为。
因为您没有提供端到端的测试源代码。以下几点将指导您为日期选择器编写端到端测试。
const EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(element(by.css('btn-outline-secondary'))), 5000).then(() => {
element(by.css('btn-outline-secondary')).click(); // This will click calendar icon
const d = new Date().getDate()+1; // This will get you next day value
// Write your code to find next day element and click it using click() function
// Hint: Each day is a "div" with class "btn-light" and day as content of that div element
});
EC.presenceOf()
将检查日历图标按钮是否存在(并会在 5 秒后超时)。
如果存在,则它将单击该图标。因此,日历将打开。
现在,你的任务是确定第二天并select它。
可以使用 getDate()
函数来识别第二天,如上所示。
选择它也可以很容易地完成,上面给出了提示。
您可以直接将密钥发送到该日期的输入。 它的格式很棘手。从截图中我可以看到它的日/月/年
试试下面的代码: 你将需要 momentjs 包:https://www.npmjs.com/package/moment 以下是有关时刻日期格式化程序的信息:https://devhints.io/moment
const datenow = new Date();
datenow.setDate(datenow.getDate() + 1); // today + 1 day.
const moment = require('moment');
// format the date to string.
const formatedDate = moment(datenow).format('D MMM YYYY');
// send the formated date to the input.
element(by.xpath('//input[@class=\'form-control\']')).sendKeys(formatedDate);
注意:根据您的需要进行调整,这只是如何处理日期选择器的示例。