Python+selenium自动化-js处理日历控件(修改readonly属性)

前言

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

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

案例 

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

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

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

 

 

 

 

代码

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

 1 from selenium import webdriver
 2  
 3 def test():
 4     driver = webdriver.Chrome()
 5     driver.get(r"www.123.com")
 6     # 首先根据id定位到日历输入框
 7     js = 'document.getElementById("STARTTIME").removeAttribute("readonly");'
 8     # 运行js代码
 9     driver.execute_script(js)
10     start_time = self.driver.find_element_by_id('STARTTIME')
11     # 如果输入框内有默认的内容,需要先清空输入框
12     start_time.clear()
13     # 输入需要修改的时间
14     start_time.send_keys(‘2020-04-22’)
15  
16 if __name__ == '__main__':
17     test()

 

posted @ 2020-04-22 11:38  秃秃的测试  阅读(507)  评论(0)    收藏  举报