Как выбрать время в выпадающем списке DatePicker (Selenium & Python) - PullRequest
2 голосов
/ 22 июня 2019

Я хочу, чтобы скрипт выбрал определенное время в раскрывающемся списке времени начала.

Я использую 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 голосов
/ 22 июня 2019

Вы можете использовать приведенный ниже xpath для выбора времени, оно работает как от, так и от времени.

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

Скриншот: enter image description here

0 голосов
/ 22 июня 2019

На самом деле получается, что этот сайт работает jQuery. Зная, что вы можете просто сделать:

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

, который изменит ваш ввод на желаемое время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...