selenium webdriver——JS操作日历控件

一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期,

1. 定位到该input

2. 使用sendKeys 方法 

比如

但是,有的日期控件是readonly的

比如12306的这个

<input id="train_date" class="inp-txt" type="text" value="" name="leftTicketDTO.train_date" autocomplete="off" maxlength="10" readonly="readonly">

这个时候,没法调用WebElement的sendKeys()


方法1:使用JS remove readonly attribute,然后sendKeys

JavascriptExecutor driver_js= (JavascriptExecutor) driver;
driver_js.executeScript("arguments[0].removeAttribute("readonly") ", driver.findElement(By.id("train_date")));
driver.findElement(By.id("train_date")).clear();
driver.findElement(By.id("train_date")).sendKeys("2016-08-20");

方法2:使用JS输入

JavascriptExecutor driver_js= (JavascriptExecutor) driver;
driver_js.executeScript("arguments[0].value="2016-08-20"",driver.findElement(By.id("train_date")));
原文地址:https://www.cnblogs.com/hjhsysu/p/5735956.html