前面介绍了JS能够修改一些元素属性内容,在作web自动化的时候,会遇到设定为没法输入的内容,让咱们本身选择,这时候为了不选择出错,咱们能够直接经过JS修改为可输入,而后进行输入内容。这种场景最经常使用的也就属日历控件了。html
readonly这个参数在html中表示规定输入字段是只读的。不能够进行输入。web
把下面的代码放到文本中,后缀改为HTML,打开能够发现,输入框内没法进行修改。学习
<html> <body> 欢迎关注测试-安静:<br> <input type="text" class="input" value="测试-安静" id="anjing" readonly=""> <br> </body> </html>
咱们能够进行对这个属性进行删除,删除事后在进行输入测试
from selenium import webdriver import time driver = webdriver.Chrome() driver.get(r'E:\web\11.html') js = 'document.getElementById("anjing").removeAttribute("readonly")' driver.execute_script(js) time.sleep(2) # 先清空,再输入 driver.find_element_by_id('anjing').clear() driver.find_element_by_id('anjing').send_keys('感谢关注测试-安静!')
回到标题,其实通常的日历都是经过readonly属性来控制不让输入,只能手动选择。安静拿12306进行来看spa
经过12306的咱们再一次修改属性和咱们的标题挂钩~code
from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.12306.cn/index/') js = 'document.getElementById("train_date").removeAttribute("readonly")' driver.execute_script(js) time.sleep(2) # 先清空,再输入 driver.find_element_by_id('train_date').clear() time.sleep(2) driver.find_element_by_id('train_date').send_keys('感谢关注测试-安静!')
经过两个小的案例再一次复习如何经过JS进行来删除属性,以及学习遇到这种日历控件没法输入,如何进行输入参数htm
最新安静搞了个公众号,准备把博客内容都整理在一块儿,方面你们经过手机均可以跟着安静一块儿学习。若是喜欢的话,扫码关注,感谢您的支持。blog