Add separate README.md to phantom_shim (#252)

The PhantomShim specific readme should be a better explanation of
what phantom shim is and is not.
This commit is contained in:
Andrey Lushnikov
2017-08-14 10:13:48 -07:00
committed by GitHub
parent 13e0965407
commit 5154d72342
2 changed files with 21 additions and 8 deletions

View File

@@ -131,14 +131,6 @@ Yes. Puppeteer runs Chromium in [headless mode](https://developers.google.com/we
Since Puppeteer's code is run by Node, it exists out-of-process to the controlled Chromium instance. This requires most of the API calls to be asynchronous to allow the necessary roundtrips to the browser.
#### Q: What is the "Phantom Shim"?
To make sure Puppeteer's API is comprehensive, we built [PhantomShim](https://github.com/GoogleChrome/puppeteer/tree/master/phantom_shim) - a lightweight phantomJS script runner built atop of Puppeteer API. We run phantomJS tests against PhantomShim with an ultimate goal to pass them all.
To emulate PhantomJS which runs automation scripts in-process to the automated page, PhantomShim spawns [nested event loops](https://github.com/abbr/deasync). On practice, this might result in unpredictable side-effects and makes the shim unreliable, but this works pretty good for testing goals.
> **NOTE** It is strictly **not recommended** to use PhantomShim out in the wild.
#### Q: What is the difference between Puppeteer and Selenium / WebDriver?
Selenium / WebDriver is a well-established cross-browser API that is useful for testing cross-browser support.