日历日期选择器 Selenium Python
Calendar date picker Selenium Python
您好,我想弄清楚如何在日历上为某些个人项目的 zacks 选择日期。无法弄清楚它是如何工作的。我在日期选择器上读到 post 被用作 table 我可以尝试这种方法但我想获取未来和过去的日期选择并且在页面上,只有当前月份显示所以理想情况下希望看到 onclick 功能正常工作。
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)
至 select 日期 12/1/2020 在网站内 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 :
使用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()
使用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()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
浏览器快照:
参考资料
您可以在以下位置找到一些相关的详细讨论:
您好,我想弄清楚如何在日历上为某些个人项目的 zacks 选择日期。无法弄清楚它是如何工作的。我在日期选择器上读到 post 被用作 table 我可以尝试这种方法但我想获取未来和过去的日期选择并且在页面上,只有当前月份显示所以理想情况下希望看到 onclick 功能正常工作。
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)
至 select 日期 12/1/2020 在网站内 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
使用
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()
使用
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()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
浏览器快照:
参考资料
您可以在以下位置找到一些相关的详细讨论: