繁体   English   中英

如何从夜表 javascript 自动化中的日期选择器日历中获取 select 日期?

[英]How to select a date from date picker calender in nightwatch javascript automation?

我想 select 来自 datepicker 的日期,该日期不是 static 即选择同一天,它应该是动态的。 即应该能够 select 任何过去的日期,包括今天。

问题:点击一个字段后,我得到这个日历,从日历我必须到 select 一个日期。 怎么做? 在 Nightwatch js 中更可取。

在此处输入图像描述

这是一个非常重要的问题。 我知道没有“现成”的解决方案可以插入 Nightwatch。

您将要构建一个 javascript 文件,该文件允许您获取月份中的日期。 但因为它可能是一个月的最后一天,或者一年的最后一天,你也可能需要确定这些。

像这样开始:

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
var monthShortNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
];
const dayNames = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", 
"Saturday", "Sunday"
];
var dayShortNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
];

const d = new Date();
var month = monthNames[d.getMonth()];
var mmm = monthShortNames[d.getMonth()];
var today = new Date();
var tomorrow = new Date();
tomorrow.setTime(tomorrow.getTime() + (24 * 60 * 60 * 1000));
var mm = today.getMonth()+1; // because January is 0.
var singleDigitDate = today.getDate();
var dd = today.getDate();
var ddnlz = today.getDate(); // single digit dates, no leading zero
var dayShortName = dayShortNames[d.getDay()]; // Mon, Tue, etc.
var mmt = tomorrow.getMonth()+1;
var dt = tomorrow.getDate();
var ddt = tomorrow.getDate();
var yyyy = today.getFullYear();
var yyyyt = tomorrow.getFullYear();
if ( dd<10 ){ dd='0'+dd } // if we need leading zeros for days 
if ( mm<10 ){ mm='0'+mm } // if we need leading zeros for months
if ( ddt<10 ){ ddt='0'+ddt } // if we need leading zeros for days 
if ( mmt<10 ){ mmt='0'+mmt } // if we need leading zeros for months

将其放入 /conf 或以其他方式使其可用于您的 base-test-class.js

如果您今天总是想选择,这要容易得多。 您需要使用 xpath 选择器来选择要单击的日期。

您将使用 XPATH 单击日期,例如单击 //*[.='16'],其中 16 是今天的日期。

如果说你想在日历上选择明天,那么事情就会变得更具挑战性。

您需要有一种方法来确保明天不是新的月份/年份。 我曾经在一个项目上工作,它派上用场,所以我构建了它,但我编写的代码都留在了客户端。 我似乎记得每个月都有一个包含天数的数组,而且我没有费心解决闰年。 如果您单击的任何一天不是今天,您将需要一些if语句来检查“这是一年中的最后一天吗?” 它是本月的最后一天吗?”并按下相应的按钮以到达 select 那些日期(那些向上箭头和向下箭头)的位置。抱歉,我没有示例代码。

这可能不是您想要的现成解决方案。 我在使用日历和 Nightwatch 时找不到日期选择器模块。 也许你会很幸运,有人已经建立并分享了一个......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM