因为一些input标签,具有readonly属性,我们去要去掉readonly属性,才能实现对input标签的输入;一开始的时候我在网上查了很对资料,最终实现了,不多说了,直接上代码:
#开始日期
# js = 'document.getElementsByClassName("ant-calendar-picker-input ant-input")[0].removeAttribute("readOnly")'.format("//*[@id='root']/div/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/div/div/div[1]/div/form/div[2]/div/div/span/span/input") # 使用js临时移除readonly属性
js = 'document.getElementsByClassName("ant-calendar-picker-input ant-input")[0].removeAttribute("readOnly")'
self.driver.execute_script(js) # 执行js
time.sleep(1)
self.driver.find_element(By.XPATH,"//*[@id='root']/div/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/div/div/div[1]/div/form/div[2]/div/div/span/span/input") .clear()
time.sleep(1)
# self.driver.find_element(By.XPATH,"//*[@id='root']/div/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/div/div/div[1]/div/form/div[2]/div/div/span/span/input").send_keys('2023-08-24 00:00:00') # 定位日期下拉框(此时的下拉框已经可以输入了) # 输入完执行点击,使数据存入
# self.driver.find_elements(By.CLASS_NAME,"ant-calendar-picker-input.ant-input")[0].send_keys("2023-08-24 00:00")
js_value = 'document.getElementsByClassName("ant-calendar-picker-input ant-input")[0].value="2023-08-02 00:00"'
self.driver.execute_script(js_value)
在实现过程中,我遇到了一些问题,比如去掉readonly属性之后,重新赋值没有成功,后来又加了一行代码, self.driver.find_element(By.XPATH,"//*[@id='root']/div/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/div/div/div[1]/div/form/div[2]/div/div/span/span/input") .clear() 目的就是把原来的默认值删掉;发现删掉后,还是赋值失败,最终运用js代码 js_value = 'document.getElementsByClassName("ant-calendar-picker-input ant-input")[0].value="2023-08-02 00:00"'
self.driver.execute_script(js_value)赋值成功了;
其实上述并不能实现;
接下来展示另外一种方法(模拟键盘输入):
hos = self.driver.find_element(By.XPATH,"//*[@id='root']/div/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/div/div/div[1]/div/form/div[2]/div/div/span/span/input")
print("开始日期不可编辑:{}".format(hos.is_enabled()))
hos.click()
time.sleep(2)
self.driver.find_element(By.XPATH,"/html/body/div[2]/div/div/div/div/div[1]/div/input").click()
win32api.keybd_event(17, 0, 0, 0) # ctrl键位码是17
win32api.keybd_event(65, 0, 0, 0) # a键位码是65
win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0) # 释放按键
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
pyautogui.typewrite('2023-09-11 00:00')
python模拟按键 python如何模拟键盘输入可以参考:python模拟按键 python如何模拟键盘输入_mob6454cc6441b6的技术博客_51CTO博客python模拟按键 python如何模拟键盘输入,Python模拟键盘输入和鼠标操作一、Python键盘输入模拟:importwin32apiimportwin32conwin32api.keybd_event(17,0,0,0)#ctrl键位码是17win32api.keybd_event(86,0,0,0)#v键位码是86win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUPhttps://blog.51cto.com/u_16099185/6444100文章来源:https://www.toymoban.com/news/detail-687965.html
如何在 Python 中模拟键盘输入,可以参考:如何在 Python 中模拟键盘输入-火焰兔Python 是一种高级编程语言,它可以用于开发各种应用程序,包括自动化测试、Web 开发、科学计算等。在 Python 中模拟键盘输入是一种常见的需求,它可以帮助我们自动化完成一些重复性的任务,提高工作效率。本文将介绍如何在 Pythonhttps://www.zadmei.com/rhzpzmnj.html文章来源地址https://www.toymoban.com/news/detail-687965.html
到了这里,关于python+selenium实现修改日期控件的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!