如何在datepicker的下拉菜单中选择时间(Selenium和Python)

时间:2019-06-21 22:48:24

标签: python selenium datepicker selenium-chromedriver

我希望脚本在开始时间下拉列表中选择特定时间。

我正在将Selenium Chromedriver和Python用于https://www.sailbox.ch/de/bootliste。我设法打开了开始时间选择器的下拉列表(小时:分钟)。 我尝试了几种方法来将点击值设置为22:00。

这是设置

from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
driver.get("https://www.sailbox.ch/de/bootliste")
assert "sailbox" in driver.title

这将打开开始时间日期选择器的下拉列表

driver.find_element_by_id("filterFormInput_timeFrom").click()
driver.implicitly_wait(4)

然后我尝试了多种选择:

选项1

start_time = driver.find_element_by_xpath("//div[@class='xdsoft_time']//div[@data- 
hour='22'][@data-minute='00']")
driver.implicitly_wait(4)
start_time.click()

选项2

driver.find_element_by_css_selector("div[@class='xdsoft_time' and text()='20:00']")

选项3

driver.findElements(By.cssSelector("div[@data-hour='22'] and [@data-minute='00']")).click();

当前,我收到“元素不可点击”的错误消息。 目标是从下拉列表中选择值“ 22:00”。

2 个答案:

答案 0 :(得分:0)

实际上,该网站运行jQuery。知道您可以轻松做到:

driver.execute_script('$("#timeFrom").val("22:00").change();');

这会将您的输入更改为所需时间

答案 1 :(得分:0)

您可以使用下面的xpath选择时间,它既适用于时间又适用于时间。

//div[starts-with(@class,'xdsoft_datetimepicker')][starts-with(@style,'display: block')]//div[.='22:00']

截屏: enter image description here