public void ShouldReportKeyCodeOfArrowKeysUpDownEvents()
{
driver.Url = javascriptPage;
IWebElement result = driver.FindElement(By.Id("result"));
IWebElement element = driver.FindElement(By.Id("keyReporter"));
element.SendKeys(Keys.ArrowDown);
Assert.IsTrue(result.Text.Trim().Contains("down: 40"));
Assert.IsTrue(result.Text.Trim().Contains("up: 40"));
element.SendKeys(Keys.ArrowUp);
Assert.IsTrue(result.Text.Trim().Contains("down: 38"));
Assert.IsTrue(result.Text.Trim().Contains("up: 38"));
element.SendKeys(Keys.ArrowLeft);
Assert.IsTrue(result.Text.Trim().Contains("down: 37"));
Assert.IsTrue(result.Text.Trim().Contains("up: 37"));
element.SendKeys(Keys.ArrowRight);
Assert.IsTrue(result.Text.Trim().Contains("down: 39"));
Assert.IsTrue(result.Text.Trim().Contains("up: 39"));
// And leave no rubbish/printable keys in the "keyReporter"
Assert.AreEqual(element.Value, string.Empty);
}