<commit_before>#### Comparison of Spectron and Puppeteer

| Feature                                | Spectron | Puppeteer |
| -------------------------------------- | -------- | --------- |
| [ Element API ](feature/ElementApi.md)                            | 2        | 1         |
| [ Page API ](feature/PageApi.md)                               | 1        | 2         |
| [ Browser API ](feature/BrowserApi.md)                            | 1        | 2         |
| [ Touchscreen/mouse/keyboard API ](feature/InputApi.md)         | 1        | 2         |
| [ Workers API ](feature/WorkersApi.md)                            | 0        | 2         |
| [ Request/Response API ](feature/RequestResponseApi.md)                   | 0        | 2         |
| [ Dialog API ](feature/DialogApi.md)                             | 0        | 1         |
| [ Electron API ](feature/ElectronApi.md)                           | 2        | 0         |
| [ Device emulation ](feature/DeviceEmulation.md)                       | 1        | 2         |
| [ Page navigation ](feature/PageNavigation.md)                        | 1        | 1         |
| [ Function exposing ](feature/FunctionExposing.md)                      | 0        | 1         |
| [ Commands chaining ](feature/CommandsChaining.md)                      | 1        | 0         |
| [ Screenshots creation ](feature/ScreenshotsCreation.md)                   | 1        | 2         |
| [ Screen recording ](feature/ScreenRecording.md)                       | 0        | 0         |
| [ Drag and drop ](feature/DragAndDrop.md)                          | 2        | 1         |
| [ Access to raw Chrome Devtools Protocol ](feature/ChromeDevToolsProtocol.md) | 1        | 1         |
| [ Headless testing ](feature/HeadlessTesting.md)                       | 0        | 1         |

#### Legend

0. missing
1. basic API or feature exists
2. advanced API

#### Summary

- Both have similar API related to interaction with page and element. If some method is missing, the desired result can be achieved via other methods.
- Puppeteer methods return a promise. No chaining support.
- Puppeteer has more browser and page related API.
- Puppeteer has a convenient mouse/keyboard/touchscreen/dialog API.<commit_msg>update comparison table<commit_after>#### Comparison of Spectron and Puppeteer

| Feature                                | Spectron | Puppeteer |
| -------------------------------------- | -------- | --------- |
| [ Element API ](feature/ElementApi.md)                            | 2        | 1         |
| [ Page API ](feature/PageApi.md)                               | 1        | 2         |
| [ Browser API ](feature/BrowserApi.md)                            | 1        | 2         |
| [ Touchscreen/mouse/keyboard API ](feature/InputApi.md)         | 1        | 2         |
| [ Workers API ](feature/WorkersApi.md)                            | 0        | 2         |
| [ Request/Response API ](feature/RequestResponseApi.md)                   | 0        | 2         |
| [ Dialog API ](feature/DialogApi.md)                             | 0        | 1         |
| [ Electron API ](feature/ElectronApi.md)                           | 2        | 0         |
| [ Device emulation ](feature/DeviceEmulation.md)                       | ?        | 2         |
| [ Page navigation ](feature/PageNavigation.md)                        | 1        | 1         |
| [ Function exposing ](feature/FunctionExposing.md)                      | 0        | 1         |
| [ Commands chaining ](feature/CommandsChaining.md)                      | 1        | 0         |
| [ Screenshots creation ](feature/ScreenshotsCreation.md)                   | 1        | 2         |
| [ Screen recording ](feature/ScreenRecording.md)                       | 0        | 0         |
| [ Drag and drop ](feature/DragAndDrop.md)                          | ?        | ?         |
| [ Access to raw Chrome Devtools Protocol ](feature/ChromeDevToolsProtocol.md) | ?        | 1         |
| [ Headless testing ](feature/HeadlessTesting.md)                       | 0        | 1         |

#### Legend

0. missing
1. basic API or feature exists
2. advanced API

#### Summary

- Both have similar API related to interaction with page and element. If some method is missing, the desired result can be achieved via other methods.
- Puppeteer methods return a promise. No chaining support.
- Puppeteer has more browser and page related API.
- Puppeteer has a convenient mouse/keyboard/touchscreen/dialog API.
{'fraction_non_alphanumeric': 0.11952191235059761, 'fraction_numerical': 0.015493581230633024, 'mean_word_length': 1.2033154558751828, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 50, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '225933', 'n_tokens_mistral': 1230, 'n_tokens_neox': 1093, 'n_words': 315}