日历日期选择器Selenium Python [英] Calendar date picker Selenium Python

查看:171
本文介绍了日历日期选择器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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆