如何在Selenium中使用JavascriptExecutor清除文本输入框?
解决Selenium clear()无法清除文本框内容的替代方案
当Selenium自带的clear()函数无法正常清除文本框内容时,可以借助JavaScript执行器实现强制清空操作。以下是针对日期输入框场景的Java实现代码:
if (maturityDate.compareTo(currentDate) < 0) { System.out.println("到期日期早于当前日期"); renewalMaturityDate.click(); JavascriptExecutor js = (JavascriptExecutor) selenium; js.executeScript("arguments[0].value = '';", renewalMaturityDate); renewalMaturityDate.sendKeys(futuredate); } else if (maturityDate.compareTo(currentDate) > 0) { System.out.println("到期日期晚于当前日期"); renewalMaturityDate.click(); JavascriptExecutor js = (JavascriptExecutor) selenium; js.executeScript("arguments[0].value = '';", renewalMaturityDate); renewalMaturityDate.sendKeys(maturityDate); rm.waitForSeconds(1); }
代码逻辑说明
- 先对比到期日期与当前日期的大小,分两种业务场景处理
- 点击目标输入框确保元素处于可交互状态
- 通过
JavascriptExecutor执行脚本直接清空输入框的value属性,替代失效的clear()方法 - 最后根据场景输入对应的目标日期(未来日期或原到期日期)
内容的提问来源于stack exchange,提问作者praveen Geetha
相关产品推荐
相关产品推荐

