With a running ChromeDriver:
git clone https://gist.github.com/4805526b5dcea0897c27.git
npm install selenium-webdriver
node index.js
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>ChromeDriver sendKeys() won't work on an input type="date" after a clear</title> | |
</head> | |
<body> | |
<h1>ChromeDriver <code>clear</code> on an <code>input type="date"</code> pretends element is not user-editable</h1> | |
<input type="date" name="date"></input> | |
<code> | |
<pre> | |
driver.findElement(By.name('date')).sendKeys('01012016'); | |
driver.findElement(By.name('date')).clear(); | |
/** Throws: | |
InvalidElementStateError: invalid element state: Element must be user-editable in order to clear it. | |
(Session info: chrome=48.0.2564.103) | |
(Driver info: chromedriver=2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform=Mac OS X 10.11.3 x86_64) | |
*/ | |
driver.findElement(By.name('date')).sendKeys('02022016'); | |
</pre> | |
</code> | |
</body> | |
</html> |
var webdriver = require('selenium-webdriver'), | |
By = require('selenium-webdriver').By; | |
var driver = new webdriver.Builder() | |
.forBrowser('chrome') | |
.build(); | |
driver.get('file://' + __dirname + '/index.html'); | |
driver.findElement(By.name('date')).sendKeys('01012016'); | |
driver.findElement(By.name('date')).clear(); | |
driver.findElement(By.name('date')).sendKeys('02022016'); |