| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library webdriver; | 5 library webdriver; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:crypto'; |
| 8 import 'dart:io'; | 9 import 'dart:io'; |
| 9 import 'dart:json' as json; | 10 import 'dart:json' as json; |
| 10 import 'dart:uri'; | 11 import 'dart:uri'; |
| 11 | 12 |
| 12 part 'src/base64decoder.dart'; | |
| 13 | |
| 14 /** | 13 /** |
| 15 * WebDriver bindings for Dart. | 14 * WebDriver bindings for Dart. |
| 16 * | 15 * |
| 17 * These bindings are based on the WebDriver JSON wire protocol spec | 16 * These bindings are based on the WebDriver JSON wire protocol spec |
| 18 * (http://code.google.com/p/selenium/wiki/JsonWireProtocol). Not | 17 * (http://code.google.com/p/selenium/wiki/JsonWireProtocol). Not |
| 19 * all of these commands are implemented yet by WebDriver itself. | 18 * all of these commands are implemented yet by WebDriver itself. |
| 20 * Nontheless this is a complete implementation of the spec as the | 19 * Nontheless this is a complete implementation of the spec as the |
| 21 * unsupported commands may be supported in the future. Currently, | 20 * unsupported commands may be supported in the future. Currently, |
| 22 * there are known issues with local and session storage, script | 21 * there are known issues with local and session storage, script |
| 23 * execution, and log access. | 22 * execution, and log access. |
| (...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 656 } | 655 } |
| 657 | 656 |
| 658 /** | 657 /** |
| 659 * Take a screenshot of the current page (PNG). | 658 * Take a screenshot of the current page (PNG). |
| 660 * | 659 * |
| 661 * Potential Errors: NoSuchWindow. | 660 * Potential Errors: NoSuchWindow. |
| 662 */ | 661 */ |
| 663 Future<List<int>> getScreenshot([fname]) { | 662 Future<List<int>> getScreenshot([fname]) { |
| 664 var completer = new Completer(); | 663 var completer = new Completer(); |
| 665 return _get('screenshot', completer, (r, v) { | 664 return _get('screenshot', completer, (r, v) { |
| 666 var image = Base64Decoder.decode(v); | 665 var image = CryptoUtils.base64StringToBytes(v); |
| 667 if (fname != null) { | 666 if (fname != null) { |
| 668 writeBytesToFile(fname, image); | 667 writeBytesToFile(fname, image); |
| 669 } | 668 } |
| 670 completer.complete(image); | 669 completer.complete(image); |
| 671 }); | 670 }); |
| 672 } | 671 } |
| 673 | 672 |
| 674 /** | 673 /** |
| 675 * List all available IME (Input Method Editor) engines on the machine. | 674 * List all available IME (Input Method Editor) engines on the machine. |
| 676 * To use an engine, it has to be present in this list. | 675 * To use an engine, it has to be present in this list. |
| (...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1442 * | 1441 * |
| 1443 * 'timestamp' (int) - The timestamp of the entry. | 1442 * 'timestamp' (int) - The timestamp of the entry. |
| 1444 * 'level' (String) - The log level of the entry, for example, "INFO". | 1443 * 'level' (String) - The log level of the entry, for example, "INFO". |
| 1445 * 'message' (String) - The log message. | 1444 * 'message' (String) - The log message. |
| 1446 * | 1445 * |
| 1447 * This works with Firefox but Chrome returns a 500 response due to a | 1446 * This works with Firefox but Chrome returns a 500 response due to a |
| 1448 * bad cast. | 1447 * bad cast. |
| 1449 */ | 1448 */ |
| 1450 Future<List<Map>> getLogs(String type) => _post('log', { 'type': type }); | 1449 Future<List<Map>> getLogs(String type) => _post('log', { 'type': type }); |
| 1451 } | 1450 } |
| OLD | NEW |