Reputation:
I know how to send keys into a blank field as follows:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
url = 'https://www.aircanada.com/en/'
browser.get(url)
browser.find_element_by_id('departure1').send_keys('28/03/2014')
However, since the field already has default value 'DD/MM/YYYY', how can I replace that field value with my value (i.e., '28/03/2014')
Upvotes: 8
Views: 14804
Reputation: 2304
The clear()
function is for this purpose.
from selenium import webdriver
browser = webdriver.Firefox()
url = 'https://www.aircanada.com/en/'
browser.get(url)
dep_date = browser.find_element_by_id('departure1')
dep_date.clear()
dep_date.send_keys('28/03/2014')
Haven't tested but this should do what you wanted, in a more 'Pythonic' way.
Upvotes: 7
Reputation: 30136
A couple of errors in your code:
DD/MM/YYYY
, and not YYYY-MM-DD
).DD/MM/YYYY
using 10 clicks on the backspace key.Here is the fix:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
url = 'https://www.aircanada.com/en/'
browser.get(url)
departure1 = browser.find_element_by_id('departure1')
departure1.send_keys(Keys.BACKSPACE*10)
departure1.send_keys('21/03/2014')
departure2 = browser.find_element_by_id('departure2')
departure2.send_keys(Keys.BACKSPACE*10)
departure2.send_keys('22/03/2014')
Upvotes: 3
Reputation: 32855
Tested working for me:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
url = 'https://www.aircanada.com/en/'
browser.get(url)
input_field = browser.find_element_by_id('departure1')
browser.execute_script("arguments[0].value = ''", input_field)
input_field.send_keys('12/04/2014')
input_field.send_keys(Keys.RETURN)
Upvotes: 6