Python& Selenium无法在datepicker中选择日期

时间:2017-02-12 14:13:26

标签: jquery python selenium datepicker

我是Python的新手,并学习如何使用Selenium废弃数据。

我尝试从monmondo.com上的日期选择表单中选择日期时遇到问题(为了示例)

这是我设法得到的最远:(编辑:我设法比以前更进一步,但我仍然卡住了)

<td class=" " data-handler="selectDay" data-event="click" data-month="2" data-year="2017"><a class="ui-state-default" href="#">20</a></td>

    <a class="ui-state-default" href="#">20</a>

结果是

Promise

我使用firepath测试xpath,它似​​乎正常工作,因为它可以在页面的源代码中找到。

源代码中日历日的网页结构为:

Observable

我的模糊猜测是数据 - 偶数点击会触发选择,但它似乎位于我可以找到数字的类之上。这就是说我不确定是不是这样。

如果你能帮助像我这样的新人,我真的很感激!

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试添加一些时间等待元素变为可见:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Firefox()  
browser.get("https://www.momondo.com")
browser.implicitly_wait(5)
# Click to open drop-down
date = browser.find_element_by_xpath("//div[@class='input _date-depart']/div[@class='ui-calendar']/input").click()
# Choose depart date
wait(browser, 10).until(EC.visibility_of_element_located((By.XPATH, "//td[@data-handler='selectDay']/a[text()='20']"))).click()
# Choose return date
wait(browser, 10).until(EC.visibility_of_element_located((By.XPATH, "//td[@data-handler='selectDay']/a[text()='30']"))).click()