前言

今天写自动化脚本的时候遇到一个需要更改日期的控件,不想费劲巴拉的去找日历的定位,但是又没办法直接输入我想输的日期时间,想了会儿之后决定用js解决日历控件

基本思路:先用js去掉readonly属性,然后直接输入日期文本内容

案例

 1.很明显这种元素的属性是readonly,输入框是无法直接输入的

 2.F12找到日历框控件对应的元素,找到readonly属性,双击删除,回车

 3.回到页面,点击日历框随意输入字符,测试成功

python selenium 更换请求header selenium 修改js_js代码

代码

当然,我这个只是随手写的一个大概的运行例子,具体的要根据你自己的实际情况来变动一下

from selenium import webdriver

def test():
    driver = webdriver.Chrome()
    driver.get(r"www.123.com")
    # 首先根据id定位到日历输入框
    js = 'document.getElementById("STARTTIME").removeAttribute("readonly");'
    # 运行js代码
    driver.execute_script(js)
    start_time = self.driver.find_element_by_id('STARTTIME')
    # 如果输入框内有默认的内容,需要先清空输入框
    start_time.clear()
    # 输入需要修改的时间
    start_time.send_keys(‘2020-04-22’)

if __name__ == '__main__':
    test()