0

Unable to click calendar date with JavascriptExecutor

   **String dateVal = "November 22, 2020";
    js=(JavascriptExecutor)driver; 
    js.executeScript("arguments[0].click();", driver.findElement(By.xpath("//*[@class='flatpickr-day'and @aria-label='"+dateVal+"']")));**

HTML TAGS as seen in inmage enter image description here

What might be the solution for it seeking your feedback?

Dip
  • 57
  • 1
  • 10
  • why can't you use click directy ? – PDHide Nov 30 '20 at 09:31
  • https://stackoverflow.com/questions/65064715/how-to-change-the-date-of-a-hidden-element-of-a-datepicker-using-setattribute-me?noredirect=1#comment115029401_65064715 This might be helpful – Timeler Nov 30 '20 at 09:36
  • @Dip Why would you use `arguments[0].click()` instead of the much proven and efficient `click()` – undetected Selenium Nov 30 '20 at 10:43
  • Thank you both for your response. I'm just trying to click on day(22nd Nov) on calendar control. Problems seem to be finding the element using xpath driver.findElement(By.xpath("//*[@class='flatpickr-day'and @aria-label='"+dateVal+"']") – Dip Dec 01 '20 at 10:21

1 Answers1

0

Is the space in the class name in the dom causing problems? If so try using contains in the xpath like this:

   String dateVal = "November 22, 2020";
    js=(JavascriptExecutor)driver; 
    js.executeScript("arguments[0].click();", driver.findElement(By.xpath("//*[contains(@class,'flatpickr-day') and @aria-label='"+dateVal+"']")));

or just try:

driver.findElement(By.xpath("//*[contains(@class,'flatpickr-day') and @aria-label='"+dateVal+"']")).click()
DMart
  • 2,401
  • 1
  • 14
  • 19
  • Thanks alot DMart it worked with js.executeScript("arguments[0].click();", driver.findElement(By.xpath("//*[contains(@class,'flatpickr-day') and @aria-label='"+dateVal+"']"))); – Dip Dec 02 '20 at 10:11