Возможно, это не идеально, но вы можете использовать кнопки +/- для регулировки ползунка, пока цель не достигнет цели.Это пример для верхнего слайдера.Вы также должны ограничить границы цели до нижнего уровня 4.000 € и верхнего до 60.000 €.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = webdriver.ChromeOptions()
# chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--start-maximized')
webdriver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
url = "https://www.cetelem.es/"
webdriver.get(url)
targetSliderStep = 22.700
targetSliderStep = round(targetSliderStep * 2) / 2 # to ensure is units covered by clicking
print('target: ' + "{0:.3f}".format(targetSliderStep))
actualSliderStep = float(webdriver.find_element_by_id('slider-step-value').text.replace(' €',''))
if actualSliderStep < targetSliderStep:
while float(webdriver.find_element_by_id('slider-step-value').text.replace(' €','')) < targetSliderStep:
webdriver.find_element_by_css_selector("#slider-step .up-button").click()
elif actualSliderStep > targetSliderStep:
while float(webdriver.find_element_by_id('slider-step-value').text.replace(' €','')) > targetSliderStep:
webdriver.find_element_by_css_selector("#slider-step .down-button").click()
print('actual: ' + webdriver.find_element_by_id('slider-step-value').text.replace(' €',''))
Чтобы ответить на другие вопросы:
Другой слайдер:
Использовать ту же логику для другого слайдера (и, возможно, добавить в пределах 12-96):
targetTimeStep = 22.700
targetTimeStep = round(int(targetTimeStep)) # to ensure is units covered by clicking
print('target: ' + str(targetTimeStep))
actualTimeStep = int(webdriver.find_element_by_id('slider-time-step-value').text)
if actualTimeStep < targetTimeStep:
while int(webdriver.find_element_by_id('slider-time-step-value').text) < targetTimeStep:
webdriver.find_element_by_css_selector("#slider-time-step .up-button").click()
elif actualTimeStep > targetTimeStep:
while int(webdriver.find_element_by_id('slider-time-step-value').text) > targetTimeStep:
webdriver.find_element_by_css_selector("#slider-time-step .down-button").click()
print('actual: ' + webdriver.find_element_by_id('slider-time-step-value').text)
Выбрать проекты:
Вы можете получить весь более длинный список проектов, щелкнув левой боковой панели меню и затем нацелив ссылки на проекты с помощью подстрок значения атрибута href.
webdriver.find_element_by_id('showLeft').click()
webdriver.find_element_by_id('layout_6').click()
projects = webdriver.find_elements_by_css_selector("[href*='prestamos/prestamo-']")
print(len(projects))
CSS-селекторы:
Я использую CSS-селекторы, так как современные браузеры оптимизированы для CSS.
Следующее, например,
#slider-step .up-button
Является родительским элементом с идентификатором (#
) slider-step
в комбинации потомков с элементом / элементами с классом (.
)up-button
.#
- это селектор идентификатора , селектор класса .
a , а " "
- комбинатор-потомок , т. Е. Выбираются дети с этим классом, которыеиметь родителя с этим идентификатором.
Вы хотите использовать селекторы идентификаторов, где это возможно, а затем селекторы классов в качестве более быстрых селекторов.
Если щелкнуть правой кнопкой мыши элемент inspect, например, на кнопке +
,для верхнего ползунка вы увидите следующий HTML-код:
Вы можете четко видеть родительский идентификатор и дочерний класс для +
.
Если вы хотите попрактиковаться в селекторах css, следующая ссылка - это весело, и вы можете прочитать о селекторах здесь