在做selenium操作日期控件时可以通过JS修改日期,简化点击选择的操作,下面以12306为例进行演示操作:
首先,打开12306官网首页https://www.12306.cn/index/,定位到出发日期元素(By.ID, \'train_date\'),查看元素属性发现元素有readonly属性
然后,将将元素的readonly属性设置为false
最后,给元素赋予新的日期值
下面是具体操作步骤:
from selenium import webdriver # 1. 打开12306首页 from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get(\'https://www.12306.cn/index/\') # 2. 定位到日期控件 date_ele = (By.ID, \'train_date\') WebDriverWait(driver,5,0.5).until(EC.visibility_of_element_located(date_ele)) # 3.准备js语句 修改realonly属性 + 赋值 js = \'\'\' var date = document.getElementById(\'train_date\'); date.readOnly = false; dare.value = [0]; \'\'\' driver.execute_script(js,args=[\'2020-12-18\'])