- bump electron to fix #1424
- BREAKING: remove window.__nightmare.ipc to resolve the major security issues (#1390)
- BREAKING: properly serialize error values (#1391)
- added linting, formatting and a git pre-commit hook (#1386)
- Added ability to specify the client certificate selected by electron (#1339)
- adding selector to the timeout error in .wait() (#1381)
- Pin Electron version (#1270)
- Fix error on preload (#1247)
- Add mouseout action to complement mouseover (#1238)
- fix problems that are rejected when adding child actions with objects. (#1093)
- Set mouse position for mouse events (#1077)
- Repaired support for multiple timeouts in FrameManager (#945)
- Remove redundant docs for 'log' event from README
- changed some
var
declarations toconst
- replace the 404 link with valid link
- added Promise override tests
- added docs for new Promise override features
- added ability to override internal Promise library
- Minor touchups to key press documentation
- Link to Electron documentation updated
- Updates speed information on the readme
- Swaps Yahoo example out for a faster DuckDuckGo example
- Fixes an issue where
nightmare
may be undefined in the browser at injection time - Changes screenshot rendering to use debugger API instead of forcing a DOM change
- Prevents unload dialogs, allowing Nightmare to end gracefully
.end(fn)
now uses.then()
under the covers- Possibly breaking change: Nightmare will now default to using a non-persistent partition. Data between executions of Nightmare will no longer be saved.
- Adds
.mouseup()
action - Fixes several typos/copy-paste errors in the readme, as well as clarifying error-first callbacks
- Adds
.path()
to get the URL's route (as opposed to the fully-qualified URL)
- Fixes parsing issues with arguments to
evaluate_now
- Upgrades to Electron 1.4.4
- Fixes a missing semicolon in the first readme example
- Fixes a reference error inside
.wait()
when usingnode --use_strict
- Adds missing documentation for
.mouseover()
- Corrects a typo in the readme
- Removes dependency on
object-assign
- Adds
.halt()
API to stop Nightmare execution immediately - Fixes
blur
exception when elements are removed by keyboard events - Possibly breaking change: Changes
.evaluate()
to allow for asynchronous execution. If the.evaluate()
d function's arity is one less than the passed in parameters, it'll assume the last argument to the function is the callback. If the return value is a thenable, it'll callthen()
to wait for promise fulfillment. Otherwise, the call will behave synchronously as it does now.
- Adds
.wait(element, timeout)
to wait for whichever comes first .end()
will now end Electron gracefully instead of issuing aSIGKILL
- Touches up readme for
.end()
- Fixes treating provisional load failures as real load failures
- Makes the CircleCI badge an SVG
- Adds an option for
.type()
to control time elapsed between keystrokes withtypeInterval
- Adds
.cookies.clearAll()
to clear all cookies - Fixes crashing if the Electron process is closed first
- Adds
pollInterval
as an option to control the tick time for.wait()
- Forces Nightmare to error on bad HTTP authentication
- Fixes a crash by omitting event data due to circular references
- Adds environment variable forwarding to the Electron process
- Fixes
openDevTools
docs to be more explicit about detaching the devtools tray - Fixes the link to the preload script
- Adds better proxy information to the readme
- Fixes a readme typo
- Updates
ipcRenderer
usage for preload scripts in readme - Bumps Electron to version 1.2.5
- Fixes
Referer
header support - Removes timeout between keystrokes when using
.type()
- Checks instance existence when calling
.end()
- Adds a link to
nightmare-examples
- Changes
yield
to.then()
in readme - Swaps
did-finish-loading
fordid-stop-loading
when waiting for page transitions - Adds optional
loadTimeout
for server responses that do not end
- Bumps Electron dependency to 1.2.1.
- Removes a
sender
workaround - Moves the start of Electron from the constructor into the queue
- adds a timeout to
.goto()
such that pages that load the DOM but never finish are considered successful, otherwise failing, preventing a hang. - updates the example script and readme file for consistency.
- reports with more helpful messages when the element does not exist when running
.click()
,.mousedown()
and.mouseover()
. .coookies.clear()
with no arguments will clear all cookies for the current domain.- adds Node engine information to package and ensures CircleCI builds and tests against 4.x, 5.x and 6.x.
- removes extranneous
javascript
event listeners upon execution completion or error. - adds
.once()
and.removeListener()
for more complete Electron process event handling.
- Points invalid test URLs to the
.tld
domain - Switches javascript templates over to using template strings.
- Adds better switch tests
- Javascript
goto
s now only wait if the main frame is loading - Allows a Nightmare instance to use
.catch()
without a.then()
- Fixes a deprecated IPC inclusion in tests
.goto()
rejects with a helpful message whenurl
is not provided
- adds call safety with IPC callbacks
- adds
.engineVersions()
to get Electron and Chrome versions, as well as Nightmare.version - changes Yahoo example to use more robust selectors, adds
.catch()
- adds a check for
runner
arguments
- blurs text inputs when finished with
.type()
or.input()
, including clearing selectors - now errors properly for non-existent selectors when using
.type()
and.input()
- strips
sender
from Electron -> parent process forwarded events - improves test speed for dev tools
- fixes
.then()
to comply with A+ promises - pipes Electron output to
debug
prefixed withelectron:
- cleans up several exception test cases using
.should.be.rejected
fromchai-as-promised
- upgrades to Electron 0.37.7
- removes
process
event listeners when a Nightmare instance ends - fixes support for
javascript:
urls
- fixes
.goto()
failing when the page does not load - fixes deprecated Electron APIs
- adds testing for deprecated API usage in Electron
- fixes the
.wait(selector)
comment - adds documentation about headers
- adds an interim gitter badge
- adds a unit test for
openDevTools
- bumps to electron 0.37.5
- adds a wrapper to run unit tests when on CircleCI, when Xvfb is running, or the
HEADLESS
environment variable is set. Prevents Nightmare from hanging when running headlessly. .evaluate()
errors if a function to evaluate is not supplied
- fixes passing uncaught exceptions back to the default handler after cleanup
- fixes overhead due to automatic subscription to frame data for screenshots
- Adds unicode documentation for
.type()
- extends
.action()
to include adding actions on the Electron process - adds a debugging message to inspect how Electron exited
- ensures multiple instances of Nightmare do not use the same
waitTimeout
value - ensures cookies are not shared across tests
- adds basic HTTP authentication
- fixes
console.log
with injected/evaluated script - ensures screenshots match the currently rendered frame
- adds ability to open and detach dev tools
- removes the double-injection from
.inject()
- adds ability to save entire page as HTML
- .then() now returns a full promise instead of nightmare. update yahoo example.
- Fix failed wait with queued up functions
- fix fullscreen switching (#434)
- add .insert(selector[, text]).
- improve .type(selector[, text]) robustness.
- bump electron and fix API updates.
- added debugging flags to README
- Update use of electron APIs to kill deprecation warnings for 1.0
- Implement dock option
- added default waitTimout
- page event listener fix
- added ability to uncheck
- now properly fails with integer wait time
- Added ability to return buffer from pdf
- add ability to clear cookies
- Added a documentation for .viewport(width, height)
- Uncomment OS X dock hide
- fix setting electron paths
- Support typing in non-strings
- Support Chrome command line switches.
- fix eventemitter leak message
- Blur focussed on click. Fixes #400
- clears inputs on falsey/empty values
-
BREAKING: changed
page-error
,page-alert
, andpage-log
toconsole
with typeserror
,alert
,log
-
BREAKING: fixed signature on nightmare.on('console', ...), to act more like console.log(...)
-
use native electron sendInputEvent for nightmare.type(...)
-
properly shutdown nightmare after certain tests and update formatting on the readme
-
add events for prompt, alert, confirm, and the other console events
-
update docs for preload script
-
support passing in a custom preload script
-
Update PDF Options
-
follow new BrowserWindow option naming
-
remove useless mocha opt
-
implement
electronPath
option -
Fixed 'args is not defined' error for paths option
- add Nightmare.action(name, action|namespace) and nightmare.use(plugin)
- bump dependencies
- Add header() method, and optional headers param to goto()
- "manipulation" fixture fixed to correctly test horizontal scrolling
- Viewport size changed in the 'should set viewport' test (for test passing on small screen resolution).
- prevent alerts from blocking
- Add support to wait(fn) for passing arguments from node context to browser context, just like evaluate()
- better cross-platform tests
- add mousedown event
- add nightmare.cookies.get(...) and nightmare.cookies.set(...) support
- improve screenshot documentation
- remove
.only
from buffered image test case - return a buffered image if no path is provided
- Allow overriding Electron app paths
- Update mocha-generators so tests run
- pointing to versioned Electron documentation
- Use "did-stop-loading" event in "continue"
- Fix menu sub-section URL in documentation
- updating yahoo mocha example so it works with yahoo's changes, fixes #275
- adding a more complete example, fixes #295
- updating atom events links, fixes #312 and #258
- set make test as the npm test target
- log and error event clean up
- Added license to package.json
- replace co-mocha w/ mocha-generators
- Allow for user-specified web-preferences options.
- Add test case for 'type' The test case of 'type and click' doesn't ensure 'type' works
- Remove old evaluate method, fix #257
-
updated and clarified docs
-
fixed package.json description, thanks @tscanlin
-
better error handling for ipc, thanks @davidnaas
-
changing the tests to point to github to avoid the great firewall fix #249
-
Use node-integration for electron, fix scripts loading fix #242 #247
-
Remove after and util in test/index.js
-
adding windows debug hint
-
adding .useragent() support back, thanks @jefeweisen!
-
improving logging for screenshot, events and goto
-
improving test cleanup, thanks @fritx!
-
bumping electron from 0.32.2 to 0.33.0
-
improving tests for rendering
-
adding support for screenshot clip rect #107
-
updated package.json
-
credits to @matthewmueller!
- see #200 for details
- added generator love
- switched to electron to speed things up
- many many thanks to @matthewmueller!
- Fix escaping of selectors in .wait(selector) thanks @thotypous
- Updated Mocha link thanks @mortonfox
- handling phantom crashes more gracefully
- fixing tests by using a local server and static fixtures
- feat(docs): add google-oauth2 plugin
- fixing links
- clearer ToC and clearer evaluate docs from #89
- adding pdf ignore, fixing test timeout
- adding new resourceRequestStarted event for executing in phantomjs context
- Add scrollTo feature. Resolves #130.
- Adds zoom feature. Resolves #136.
- added error handling for requiring file extension in screenshot
- added documentation for supported filetypes for .screenshot
- add json parsing guard to test
- adding link to tests for more examples
- updating readme with clearer function lists and sections, and mocha test example
- add readme for headers()
- add tests for headers()
- add headers method
- upping timeouts
- Add ability to save an A4 sized PDF
- add check and select
- updating tests and fixing global port issue
- Adding sequential test case
- adding multiple clicks across multiple pages test
- fixing non-existent elem issue in .visible(), fixes #108
- bumping circleci test version and timeout
- eliminating global phantom instance and state, fixes #104
- .type() now uses uses phantom's sendEvent to trigger keypress events. Fixes #81. (by @johntitus)
- bumping phantom to ~0.7.0, fixes #101
- readme tweaks
- adding resourceError event to docs
- adding timeout handling (by @johntitus)
- cleaning up styles in tests, adding tests for timeout event
- Add ability to specify a custom PhantomJS path (by @kevva)
- updating readme to explain .on() before .goto()
- fixing callbacks for .wait()
- adding grep to makefile tests
- adding check for file existence before file upload, fixes #11
- making clicks cancelable to allow for ajax forms
- adding docs and support for ssl, proxy and other cli args
- added .exists() (by @johntitus)
- Added .visible(selector) (by @johntitus)
- Added .authentication(user,password) (by @johntitus)
- fix for 'Option to run phantom without weak' (by @securingsincity)
- clarifying a readme example, see #55
- expanding the readme (by @johntitus)
- adding a on() action to handle phantom page events (by @johntitus)
- adding .forward() method with test (by @stevenmiller888)
- adding .inject() action, test, and updated readme (by @johntitus)
- adding wait(selector) test and clojure fix, fixes #39
- adding extraction readme example
- adding caveat to viewport docs, fixes #33
- updating readme example
- Remove OSX .DS_Store file
- changing run structure to auto-terminate phantomjs instances
- naming goBack to back
- added .goBack()
- contain zalgo
- cleaning up run based on ians feedback
- fixing concat in place
- cleaning up naming, whitespace, structure.. thanks @ianstormtaylor!
- fixing readme and history
- fixing queueing and .use() call order
- Merge pull request #15 from queckezz/fix/use-queueing
- fixing tests
- fixing history
- queue .use(). Closes #10
- renaming methods, fixes #18 and #19
- Merge pull request #17 from queckezz/update/phantomjs-node
- Merge pull request #16 from stevenschobert/master
- update phantomjs-node for 0.11.x support
- add instance option for phantomjs port
- Merge pull request #14 from queckezz/update/allow-no-args
- allow no args and fix debug for .evaluate()
- fixing history
- adding .url(), more debug()s and a test for .url()
- fxiing histoyr
- fixing impatient to only apply to upload since it breaks wait
- fixing history
- making callbacks impatient based on timeouts
- fixing history
- fixing upload not having a callback
- fixing history
- clarifying readme
- adding refresh method and wait for fn on page refresh
- reworking wait function to make room for a new wait overload
- refactoring tests into sections
- fixing history
- adding test to duplicate queue ordering issue, fixing issue, fixes #9
- adding nightmare-swiftly plugin mention with docs
- fixing history
- adding .use() to docs
- Merge pull request #8 from segmentio/use-rewrite
- adding test for .use() pluggability
- changes .run() to .evaluate(), removes .error() and cleans up internal wrapping
- fixing history
- Merge pull request #6 from segmentio/phantomjs-node
- fixing done callback, fixing agent setting and adding tests. fixes #4, #2, #3.
- fixing run callback hanging, fixes #3
- experimenting with phantomjs-node, for #5
- Merge branch 'master' of https://github.com/segmentio/nightmare
- Update Readme.md
- adding .viewport() and .agent(), fixes #2
- making debug output consistent
- consistent naming
- fixing .wait() readme docs
- fixing history
- adding .run() method with docs and test. fixes #1
- Update Readme.md
- fixing history
- adding more debug statements
- fixing history
- updating readme for screen and options
- fixing timeout and adding debug for .screen() method
- fixing history
- setting viewport
- fixing history
- adding better debug logs for page load detection
- fixing history
- fixing history
- fixing main for require to work
- fixing history
- fixing tests and getting screen working
- fixing history again
- pkilling phantomjs more aggressively
- fixing phantom singletons
- fixing history.md
- updating readme
- removing unneded circleci stuff
- adding circle badge to readme
- adding circle.yml
- adding tests with lots of fixes everywhere
- filling in remaining parts of api
- filling in wait function
- filling in lots of the first draft
- adding new done method
- blocks sync
- mvoing
- all before proceding
- copyright
- copy
- adding more wait options
- adding in scaffolding and readme outline