0

I am trying enter today's date into a date picker field rather than just click the today button and below is how my code is set up, but not able to do so. I am using BDD framework.

And I input todays date

@When('I input todays date')
def step_impl(context):
    value_paystub_dateOfPayStub(context.webdriver)

Getting element of said date picker:
def get_dateOfPaystub(driver):
    element = None
    try:
        element = WebDriverWait(driver, 70).until(
            EC.visibility_of_element_located(
                (By.XPATH, "//input[@id='chl.CustomerFinancials.primaryFinancialsForm.paystub.6134.DateOfPaystub']"))
        )
    except TimeoutException:
        logger.error("Date of Paystub element was not found")
    return element

Trying to enter today's date:
def value_paystub_dateOfPayStub(driver):
    currentdate = datetime.datetime.today()
    try:
        element = get_dateOfPaystub(driver)
        element.send_keys()  # to set focus on the selector
        element.send_keys(currentdate, "%m-%d-%Y")
    except Exception:
        logger.error("Unable to enter value into Paystub Employer Name field")

Any help would be appreciated.

nickgryg
  • 25,567
  • 5
  • 77
  • 79
Varus
  • 179
  • 2
  • 4

3 Answers3

0

You need to use strftime to format your date.

import datetime from datetime

element.send_keys(datetime.strftime(currentdate, '%m-%d-%Y'))
PixelEinstein
  • 1,713
  • 1
  • 8
  • 17
0

Here we need to define the locator for the calendar field to accept data dynamically as below.

calendar = "//p[contains(.,'{}')]"

and then use the below code to fetch today's date and select the appropriate date

import datetime
current_day = datetime.datetime.now().day
driver.find_element_by_xpath(calendar.format(current_day).click
Arun Sasi
  • 316
  • 5
  • 15
0

Here is something I tried using css_selector:

import  datetime

# Getting today's date
now = datetime.datetime.now()
tday = now.strftime("%m-%d-%Y")

# Selecting everything and clearing by backspace
elem.send_keys(Keys.CONTROL + 'a', Keys.BACKSPACE)
elem = driver.find_element_by_css_selector('#ID')
or 
elem = driver.find_element_by_id('ID')

#  Sending today's date
elem.send_keys(tday)
time.sleep(1)
The AG
  • 672
  • 9
  • 18