<input name="DateBeginDate" type="text" onchange="javascript:setTimeout('__doPostBack('DateBeginDate','')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="DateBeginDate" disabled="disabled" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:true})" />根據這段代碼,使用的這個方法date_input = driver.find_element_by_xpath("//input[@name='DateBeginDate']") driver.execute_script("arguments[0].removeAttribute('readonly');", date_input) driver.execute_script("arguments[0].removeAttribute('disabled');", date_input) driver.execute_script("arguments[0].onchange = null;", date_input) # 禁用 onchange 事件 date_input.clear() # 清空输入框内容 date_input.send_keys("2022-12-31") 還是最後會被清空
时间: 2023-11-12 10:06:11 浏览: 152
如何将input type=file显示的浏览变成英文的
5星 · 资源好评率100%
根据你提供的代码和描述,`DateBeginDate`输入框可能存在其他脚本或事件导致输入的日期被清空。在这种情况下,禁用`onchange`事件可能无法解决问题。
你可以尝试使用`execute_script`方法直接设置输入框的值,而不是模拟键盘输入。以下是一个修改后的代码示例:
```python
date_input = driver.find_element_by_xpath("//input[@name='DateBeginDate']")
driver.execute_script("arguments[0].removeAttribute('readonly');", date_input)
driver.execute_script("arguments[0].removeAttribute('disabled');", date_input)
driver.execute_script("arguments[0].value = '2022-12-31';", date_input)
```
通过使用`driver.execute_script("arguments[0].value = '2022-12-31';", date_input)`,我们直接设置了输入框的值为"2022-12-31",而不是模拟键盘输入。
请尝试运行修改后的代码,并查看是否仍然会在设置日期后被清空。如果问题仍然存在,请确保没有其他事件或脚本会在设置日期后清空该输入框的值。如果有其他操作,请提供更多相关的代码和细节,以便更好地帮助你解决问题。
阅读全文