on
11 Apr 2023
03:19 PM
- edited on
19 Sep 2025
04:02 PM
by
HannahM
For dates that need to be dynamically selected, for example, always select a date 37 days in the future, some script customization is required. This is often seen on travel-related sites where from and to dates are needed.
The following JavaScript code snippet can be modified to perform Dynamic Date Selection in a browser clickpath synthetic monitor.
var now = new Date();
var today = new Date(now.getFullYear(), (now.getMonth()), now.getDate());
var oneMonthLater = new Date(today.valueOf() + 30*1*24*60*60*1000); //30 days later from the current date
api.info(oneMonthLater);
var ReturnDate = new Date(today.valueOf() + 37*1*24*60*60*1000);
api.info(ReturnDate); //37 days later from the current date
function monthConverter(month){ switch(month){ case 0: return '01'; case 1: return '02'; case 2: return '03'; case 3: return '04'; case 4: return '05'; case 5: return '06'; case 6: return '07'; case 7: return '08'; case 8: return '09'; case 9: return '10'; case 10: return '11'; case 11: return '12'; } }
var startMonth = monthConverter(oneMonthLater.getMonth());
var startDay = ("0" + oneMonthLater.getDate()).slice(-2);
var startYear = oneMonthLater.getFullYear();
var returnMonth = monthConverter(ReturnDate.getMonth());
var returnDay = ("0" + ReturnDate.getDate()).slice(-2);
var returnYear = ReturnDate.getFullYear();
var departDate = startYear + "-" + startMonth+ "-" + startDay; // change the variable order format and delimiter based on your input filed based on your date format for both departDate & returnDate variables. In this example date format is dd-mm-yyyy
var returnDate = returnYear + "-" + returnMonth + "-" + returnDay;
api.info(departDate);
api.info(returnDate);
function triggerevent(element) {
var evt = document.createEvent("MouseEvent");
var eventType = ["input", "change"];
for (i = 0; i < eventType.length; i++) {
evt.initMouseEvent(eventType[i], true, true, window);
element.dispatchEvent(evt); } }
var element1 = document.querySelector("#From"); // Replace with From input field JS Path
var element2 = document.querySelector("#To"); // Replace with To input field JS Path
element1.value = departDate;
triggerevent(element1);
element2.value = returnDate;
triggerevent(element2);
Right click on the From & To Date input elements which you want to perform the dynamic date selection on the page-> Inspect the element which will open the developer tools
Right click on the element on the Web developer tools - > Copy - > Copy JS path of both From & To Date input elements
Paste the JS path on the below element1 & element2 value and add this JavaScript code into the JavaScript Event of your Browser click path monitor which will enter the Dynamic Date on From & To input fields as shown in the below image,
Note:- Change the departDate and returnDate variable assigned order format and delimiter based on your input filed date format. In this example date format is dd-mm-yyyy
If none of the previous steps resolved the issue, open a chat and a link to the monitor and this article.
You can find further troubleshooting tips for Synthetic in the Synthetic Troubleshooting Map
Thank you for sharing this! I'm sure it will help out many community members.