¿Cómo seleccionar una fecha específica de un calendario, usando python-selenium?

Por ejemplo, si quiero usar python-selenium para seleccionar una fecha específica de check-in y check-out en www.priceline.com, ¿qué debo hacer?

Este es el calendario html (o puede encontrarlo en www.priceline.com)

 

Este es mi código:

 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.select import Select url = 'http://www.priceline.com/' # driver = webdriver.Firefox() driver.get(url) sleep(3) select = Select( driver.find_element_by_id('hotel-checkin') ) 

¿Y que?

Primero haga clic en la entrada del selector de fecha:

 driver.find_element_by_xpath("//input[@id='hotel-checkin'").click() 

entonces esperas a que aparezca el calendario:

 wait.until(lambda driver: driver.find_element_by_xpath("//div[@id='ui-datepicker-div']")) 

A continuación, haga clic en alguna fecha dentro de ella:

 driver.find_element_by_xpath("//div[@id='ui-datepicker-div']//a[@class='ui-state-default'][text()='HERE_IS_DATE_LIKE_10']")).click() # meaning //div[@id='ui-datepicker-div']//td/a[@class='ui-state-default'][text()='10'] 

algo como eso. Si inspeccionas el calendario con algunas herramientas de desarrollo del navegador, verás que cada elemento “día” es un elemento td con atributos data-year data-month y puedes jugar con ellos. Like //div[@id='ui-datepicker-div']//td[@data-year='2014'][@data-month='8']/a[@class='ui-state-default'][text()='10']