selenium+python自动化-怎么定位日历?

一)设置生日
如下图,如果年、月、日一个一个的点灵活性差,稳定性也差。
检查元素,发现日历控件,其实就是一个文本输入框,那么就可以直接用send_keys输入日期。
但是,检查元素,发现标签中存在一个readonly属性的元素,表示这是一个只读的输入框,不能手写。
selenium+python自动化-怎么定位日历?_第1张图片

需要每次输入日期前,删除readonly属性即可。但是selenuim没有提供删除元素属性的方法。

那么,怎么办呢?

javascript可以删除元素的属性
代码:

    document.getElementById("date").removeAttribute("readonly")

但是,javascript代码不能直接写在pycharm集成开发环境中,所以先当字符串处理

 js = 'document.getElementById("date").removeAttribute("readonly")'

然后,通过driver浏览器来执行这段javascript代码

    driver.execute_script(js)

在sendkeys之前应该先用clear()方法清空原来的默认值

   driver.find_element_by_id("date").clear()
   driver.find_element_by_id("date").send_keys("1980-02-18")

二)完整的代码段

js = 'document.getElementById("date").removeAttribute("readonly")'
driver.execute_script(js)
driver.find_element_by_id("date").clear()
driver.find_element_by_id("date").send_keys("2018-09-07")

你可能感兴趣的:(selenium,Python,自动化)