Merge pull request #2 from DrMarcII/keys
Add keys.dart that defines a bunch of static const Key values.
diff --git a/lib/src/keys.dart b/lib/src/keys.dart
new file mode 100644
index 0000000..584fede
--- /dev/null
+++ b/lib/src/keys.dart
@@ -0,0 +1,62 @@
+part of webdriver;
+
+class Keys {
+ static const String NULL = '\uE000';
+ static const String CANCEL = '\uE001';
+ static const String HELP = '\uE002';
+ static const String BACK_SPACE = '\uE003';
+ static const String TAB = '\uE004';
+ static const String CLEAR = '\uE005';
+ static const String RETURN = '\uE006';
+ static const String ENTER = '\uE007';
+ static const String SHIFT = '\uE008';
+ static const String CONTROL = '\uE009';
+ static const String ALT = '\uE00A';
+ static const String PAUSE = '\uE00B';
+ static const String ESCAPE = '\uE00C';
+ static const String SPACE = '\uE00D';
+ static const String PAGE_UP = '\uE00E';
+ static const String PAGE_DOWN = '\uE00F';
+ static const String END = '\uE010';
+ static const String HOME = '\uE011';
+ static const String LEFT = '\uE012';
+ static const String UP = '\uE013';
+ static const String RIGHT = '\uE014';
+ static const String DOWN = '\uE015';
+ static const String INSERT = '\uE016';
+ static const String DELETE = '\uE017';
+ static const String SEMICOLON = '\uE018';
+ static const String EQUALS = '\uE019';
+ static const String NUMPAD_0 = '\uE01A';
+ static const String NUMPAD_1 = '\uE01B';
+ static const String NUMPAD_2 = '\uE01C';
+ static const String NUMPAD_3 = '\uE01D';
+ static const String NUMPAD_4 = '\uE01E';
+ static const String NUMPAD_5 = '\uE01F';
+ static const String NUMPAD_6 = '\uE020';
+ static const String NUMPAD_7 = '\uE021';
+ static const String NUMPAD_8 = '\uE022';
+ static const String NUMPAD_9 = '\uE023';
+
+ static const String MULTIPLY = '\uE024';
+ static const String ADD = '\uE025';
+ static const String SEPARATOR = '\uE026';
+ static const String SUBTRACT = '\uE027';
+ static const String DECIMAL = '\uE028';
+ static const String DIVIDE = '\uE029';
+ static const String F1 = '\uE031';
+ static const String F2 = '\uE032';
+ static const String F3 = '\uE033';
+ static const String F4 = '\uE034';
+ static const String F5 = '\uE035';
+ static const String F6 = '\uE036';
+ static const String F7 = '\uE037';
+ static const String F8 = '\uE038';
+ static const String F9 = '\uE039';
+ static const String F10 = '\uE03A';
+ static const String F11 = '\uE03B';
+ static const String F12 = '\uE03C';
+ static const String COMMAND = '\uE03D';
+ static const String META = COMMAND; // alias
+
+}
\ No newline at end of file
diff --git a/lib/webdriver.dart b/lib/webdriver.dart
index ee89617..387e6bc 100644
--- a/lib/webdriver.dart
+++ b/lib/webdriver.dart
@@ -15,6 +15,7 @@
part 'src/command_processor.dart';
part 'src/common.dart';
part 'src/keyboard.dart';
+part 'src/keys.dart';
part 'src/mouse.dart';
part 'src/navigation.dart';
part 'src/options.dart';
diff --git a/test/src/keyboard_test.dart b/test/src/keyboard_test.dart
index c71ed7a..4ea484f 100644
--- a/test/src/keyboard_test.dart
+++ b/test/src/keyboard_test.dart
@@ -11,7 +11,7 @@
WebElement textInput;
setUp(() {
- return WebDriver.createDriver()
+ return WebDriver.createDriver(desiredCapabilities: Capabilities.chrome)
.then((_driver) => driver = _driver)
.then((_) => driver.get('file://' + file.fullPathSync()))
.then((_) =>
@@ -45,6 +45,16 @@
expect(value, 'abcdef');
});
});
+
+ // doesn't work with chromedriver
+ // https://code.google.com/p/chromedriver/issues/detail?id=443
+ test('sendKeys -- with tab', () {
+ return driver.keyboard.sendKeys(['abc', Keys.TAB, 'def'])
+ .then((_) => textInput.attributes['value'])
+ .then((value) {
+ expect(value, 'abc');
+ });
+ });
});
}
}