日历日期选择器Selenium Python [英] Calendar date picker Selenium Python
问题描述
您好,我正在尝试找出如何在日历上为某个个人项目的日期进行挑选.无法弄清楚它是如何工作的.我读了一篇有关用作表的datepicker的文章,我可以尝试这种方法,但是我想获取将来和过去以及页面上的日期选择,因此仅显示当前月份,因此理想情况下希望看到onclick功能正常工作.
chromedriver ="/usr/bin/chromedriver";os.environ ["webdriver.chrome.driver"] = chromedriver驱动程序= webdriver.Chrome(chromedriver)driver.get('https://www.zacks.com/earnings/earnings-calendar')driver.maximize_window()打印('页面加载等待中......')time.sleep(5)date_field = driver.find_element_by_id('earnings_calendar_events').find_element_by_id('date_select')date_field.click()#打开日历time.sleep(2)打印(发送键3")date_field.send_keys('12/1/2020')#发送键不起作用.time.sleep(5)
要在网站
Hi I am trying to figure out how to do date picking on the calendar for zacks for some personal project. unable to figure out how that works. I read a post on datepickers being used as a table and i can try that approach but i want to get date picking for future and past and on the page, only the current month shows up so would ideally like to see the onclick functionality working.
chromedriver = "/usr/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get('https://www.zacks.com/earnings/earnings-calendar')
driver.maximize_window()
print('page load waiting ......')
time.sleep(5)
date_field = driver.find_element_by_id('earnings_calendar_events').find_element_by_id('date_select')
date_field.click() # opens up the calendar
time.sleep(2)
print('sending key 3')
date_field.send_keys('12/1/2020') #send keys doesn't work.
time.sleep(5)
To select the date 12/1/2020 within the website https://www.zacks.com/earnings/earnings-calendar you need to induce WebDriverWait for the element_to_be_clickable()
and you can use either of the following Locator Strategies:
Using
CSS_SELECTOR
:driver.get('https://www.zacks.com/earnings/earnings-calendar') WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a#date_select img"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "table.sb_minicalview td > span#dt_1"))).click()
Using
XPATH
:driver.get('https://www.zacks.com/earnings/earnings-calendar') WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@id='date_select']/img"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//table[@class='sb_minicalview']//td/span[@id='dt_1']"))).click()
Note: You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
Browser Snapshot:
References
You can find a couple of relevant detailed discussion in:
这篇关于日历日期选择器Selenium Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!