簡體   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