Python Selenium选择日历中的日期作为开始日期和结束日期

2024-05-26 22:58:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从日期选择器中选择开始日期和结束日期,并尝试选择开始日期:

driver.get('http://www.chinamoney.com.cn/chinese/zjfxzx/?tbnm=%E6%9C%80%E6%96%B0&tc=null&isNewTab=1')
driver.implicitly_wait(10)
driver.refresh()
driver.implicitly_wait(10)
datefield = driver.find_element_by_id('pdbp-date-1').send_keys("2021-01-05")

但是日历只是下拉而不点击,我如何从日历中选择开始日期和结束日期?此外,它怎么能等到日历元素出现呢

提前谢谢


Tags: comhttpgetwwwdriver选择器cnb0
1条回答
网友
1楼 · 发布于 2024-05-26 22:58:13

只需添加一个useragent即可使其正常工作。守门员暗示机器人检测,但它没有运行Jquery

from selenium.webdriver.chrome.options import Options
options = Options()
from fake_useragent import UserAgent
ua = UserAgent()
a = ua.random
user_agent = ua.random
print(user_agent)
options.add_argument(f'user-agent={user_agent}')
driver = webdriver.Chrome(options=options)

这是一个随机用户代理

options.add_argument("user-agent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2919.83 Safari/537.36")

现在是代码。如果是JQuery日期选择器对象,则必须单击并选择日期。年份->;月份->;日期是您要单击的顺序。如果不允许使用Select,则只需单击标记并向下选择值为1或文本为您的值的选项/选项[text()=“一月”]等等

from selenium.webdriver.support.select import Select
wait = WebDriverWait(driver, 5)
driver.get('http://www.chinamoney.com.cn/chinese/zjfxzx/?tbnm=%E6%9C%80%E6%96%B0&tc=null&isNewTab=1')
datefield = wait.until(EC.element_to_be_clickable((By.ID, "pdbp-date-1")))
datefield.click()
##<select class="ui-datepicker-year" data-handler="selectYear" data-event="change"></select>
select = Select(wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "ui-datepicker-year"))))
select.select_by_visible_text("2020")
##<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change"></select>
select2 = Select(wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "ui-datepicker-month"))))
select2.select_by_value("1")
day=1
wait.until(EC.element_to_be_clickable((By.XPATH, "//td[@data-handler='selectDay']/a[text()='{}']".format(str(day))))).click()

相关问题 更多 >

    热门问题