使用Selenium和Python的日历选择器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Selenium和Python的日历选择器相关的知识,希望对你有一定的参考价值。
我想点击日历的一天(无论哪一天)是否可用
有几天是可用的,有些则不是。
日历是用table
标签制作的,每个td
标签,如果不可用,有一个类notSelectableDay
。
我必须重新加载页面,直到程序找到一个有selectableDay
类的可用日期。
程序结构它在另一个问题我做了if else loop on Python. Checking a class name with Selenium
这可行吗?
if driver.find_elements_by_class_name("selectableDay"):
driver.find_element_by_class_name("selectableDay").click()
我更清楚地解释了另一个问题:
I got a calender picker. How to select the available day with Selenium and Python?
答案
这是一段代码,您可以从日历中选择所需的日期。只需要传递要从日历中选择的日期。
from selenium import webdriver
def datepicker(date):
driverInstance = webdriver.Chrome()
driverInstance.get("http://www.seleniumframework.com/Practiceform/")
driverInstance.maximize_window()
driverInstance.find_element_by_id("vfb-8").click()
elements = driverInstance.find_elements_by_xpath(".//*[@id='ui-datepicker-div']/table/tbody/tr/td/a")
for dates in elements:
if(dates.is_enabled() and dates.is_displayed() and str(dates.get_attribute("innerText")) == date):
dates.click()
如果要从日历中选择日期10,则将字符串“10”传递给函数
例如:datepicker("10")
如果您有任何问题,请告诉我。
另一答案
elementos = driver.find_elements_by_class_name("calendarCellOpen")
while True:
if elementos:
driver.find_element_by_class_name("calendarCellOpen").click()
driver.find_element_by_id("ctl00_ContentPlaceHolder1_acc_Calendario1_repFasce_ctl01_btnConferma").click() #Confirm button
else:
driver.find_element_by_xpath("//input[@value='>']").click() #Forward the calendar
driver.find_element_by_xpath("//input[@value='<']").click() #Back the calendar
if elementos:
driver.find_element_by_class_name("calendarCellOpen").click()
driver.find_element_by_id("ctl00_ContentPlaceHolder1_acc_Calendario1_repFasce_ctl01_btnConferma").click() #Confirm button
也许这可以工作..相反find_element与xpath但我认为它仍然会工作..
以上是关于使用Selenium和Python的日历选择器的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 selenium webdriver 选择日期,并且 HTML 代码用于日历