OLD | NEW |
1 This file contains high-level info about how ChromeDriver works and how to | 1 This file contains high-level info about how ChromeDriver works and how to |
2 contribute. | 2 contribute. |
3 | 3 |
4 ChromeDriver is an implementation of the WebDriver standard, | 4 ChromeDriver is an implementation of the WebDriver standard, |
5 which allows users to automate testing of their website across browsers. | 5 which allows users to automate testing of their website across browsers. |
6 | 6 |
7 =====Getting started===== | 7 =====Getting started===== |
8 Build ChromeDriver by building the 'chromedriver2' target. This will create | 8 Build ChromeDriver by building the 'chromedriver2' target. This will create |
9 a shared library in the build folder named 'chromedriver2.dll' (win), | 9 a shared library in the build folder named 'chromedriver2.dll' (win), |
10 'chromedriver2.so' (mac), or 'libchromedriver2.so' (linux). | 10 'chromedriver2.so' (mac), or 'libchromedriver2.so' (linux). |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 The ChromeDriver shared library runs commands on the same thread that calls | 31 The ChromeDriver shared library runs commands on the same thread that calls |
32 ExecuteCommand. It doesn't create any additional threads except for the IO | 32 ExecuteCommand. It doesn't create any additional threads except for the IO |
33 thread. The IO thread is used to keep reading incoming data from Chrome in the | 33 thread. The IO thread is used to keep reading incoming data from Chrome in the |
34 background. | 34 background. |
35 | 35 |
36 ChromeDriver is also available as a standalone server executable which | 36 ChromeDriver is also available as a standalone server executable which |
37 communicates via the WebDriver JSON wire protocol. This can be used with the | 37 communicates via the WebDriver JSON wire protocol. This can be used with the |
38 open source WebDriver client libraries. | 38 open source WebDriver client libraries. |
39 | 39 |
| 40 =====Code structure===== |
| 41 Code under the 'chrome' subdirectory is intended to be unaware of WebDriver and |
| 42 serve as a basic C++ interface for controlling Chrome remotely via DevTools. |
| 43 As such, it should not have any WebDriver-related dependencies. |
| 44 |
| 45 1) chrome/test/chromedriver |
| 46 Implements chromedriver commands. |
| 47 |
| 48 2) chrome/test/chromedriver/chrome |
| 49 Code to deal with chrome specific stuff, like starting Chrome on different OS |
| 50 platforms, controlling Chrome via DevTools, handling events from DevTools, etc. |
| 51 |
| 52 3) chrome/test/chromedriver/js |
| 53 Javascript helper scripts. |
| 54 |
| 55 4) chrome/test/chromedriver/net |
| 56 Code to deal with network communication, such as connection to DevTools. |
| 57 |
| 58 5) chrome/test/chromedriver/server |
| 59 Code for the chromedriver server. |
| 60 |
| 61 6) chrome/test/chromedriver/third_party |
| 62 Third party libraries used by chromedriver. |
| 63 |
40 =====Testing===== | 64 =====Testing===== |
41 There are 4 test suites for verifying ChromeDriver's correctness: | 65 There are 4 test suites for verifying ChromeDriver's correctness: |
42 | 66 |
43 1) chromedriver2_unittests (chrome/chrome_tests.gypi) | 67 1) chromedriver2_unittests (chrome/chrome_tests.gypi) |
44 This is the unittest target, which runs on the main waterfall on win/mac/linux | 68 This is the unittest target, which runs on the main waterfall on win/mac/linux |
45 and can close the tree. It is also run on the commit queue and try bots by | 69 and can close the tree. It is also run on the commit queue and try bots by |
46 default. Tests should take a few milliseconds and be very stable. | 70 default. Tests should take a few milliseconds and be very stable. |
47 | 71 |
48 2) chromedriver2_tests (chrome/chrome_tests.gypi) | 72 2) chromedriver2_tests (chrome/chrome_tests.gypi) |
49 This is a collection of C++ medium sized tests which can be run optionally | 73 This is a collection of C++ medium sized tests which can be run optionally |
50 on the trybots. | 74 on the trybots. |
51 | 75 |
52 3) python tests | 76 3) python tests |
53 These are integration tests which can be found in run_py_tests.py. They are | 77 These are integration tests which can be found in run_py_tests.py. They are |
54 run on the chromium QA bots: | 78 run on the chromium QA bots: |
55 http://build.chromium.org/p/chromium.pyauto/waterfall | 79 http://build.chromium.org/p/chromium.pyauto/waterfall |
56 | 80 |
57 4) WebDriver Java acceptance tests | 81 4) WebDriver Java acceptance tests |
58 These are integration tests from the WebDriver open source project which can | 82 These are integration tests from the WebDriver open source project which can |
59 be run via run_java_tests.py. They are also run on the chromium QA bots. | 83 be run via run_java_tests.py. They are also run on the chromium QA bots. |
60 See http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/webdriver | 84 See http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/webdriver |
61 | 85 |
62 =====Contributing===== | 86 =====Contributing===== |
63 Find an open issue and submit a patch for review by an individual listed in | 87 Find an open issue and submit a patch for review by an individual listed in |
64 the OWNERS file in this directory. Issues are tracked in chromium's issue | 88 the OWNERS file in this directory. Issues are tracked in chromedriver's issue |
65 tracker with Feature=WebDriver: | 89 tracker: |
66 https://code.google.com/p/chromium/issues/list?q=feature%3Dwebdriver | 90 https://code.google.com/p/chromedriver/issues/list |
OLD | NEW |