
\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/9d2e18e10d82a97bee58193968f22be6cd1f04e9}{\texttt{ 9d2e18e}}) refactor\+: use console.\+log instead of util.\+puts

utils.\+puts is no longer available in Node.\+JS 12
\item (\href{https://github.com/angular/protractor/commit/c28115755d4de5c2ad4c43fc11feab26a928982f}{\texttt{ c281157}}) refactor\+: remove debugger and explore methods

BREAKING CHANGE\+: Debugger and explore methods are not compatable with Node 8+. Use {\ttfamily debugger} keyword instead. See\+: \href{https://goo.gl/MvWqFh}{\texttt{ https\+://goo.\+gl/\+Mv\+Wq\+Fh}}
\item (\href{https://github.com/angular/protractor/commit/7cdb978fca5ae3f5ed95a535ea39b9ee91fb6d2d}{\texttt{ 7cdb978}}) build\+: update several dev packages that have security issues
\item (\href{https://github.com/angular/protractor/commit/8e82835024463cdb17813d19589be0e66bac7992}{\texttt{ 8e82835}}) build\+: update webdriver-\/manager
\item (\href{https://github.com/angular/protractor/commit/a1fe5f2ad05ab55b1dafd429f0c31fea27ec3e5b}{\texttt{ a1fe5f2}}) ci\+: update tests to run on Node 10 and 12
\item (\href{https://github.com/angular/protractor/commit/3fc9220189a59750226328a837b42802d18e503a}{\texttt{ 3fc9220}}) fix\+: prototype Pollution vulnerability through outdated yargs package

BREAKING CHANGE\+:

Node.\+Js version 6 and 8 are no longer supported. Please update to Node.\+Js 10+

Closes \#5431
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22324}{}\doxysection{5.\+4.\+4}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22324}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22325}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22325}

\begin{DoxyItemize}
\item fix\+: security prototype pollution
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22326}{}\doxysection{5.\+4.\+3}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22326}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22327}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22327}
fix(index.\+ts)\+: Fix exports to unbreak Type\+Script 3.\+7 build\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22328}{}\doxysection{5.\+4.\+2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22328}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22329}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22329}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/db1b6381d463c7cecf11dece2bf9412fecbd6f4d}{\texttt{ db1b638}}) feat(saucelabs)\+: add sauce\+Region support for eu datacenters (\#5083)

This change allows user to define the backend region from sauce via the {\ttfamily sauce\+Region} property, e.\+g.
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{sauceUser: process.env.SAUCE\_USERNAME,}
\DoxyCodeLine{sauceKey: process.env.SAUCE\_ACCESS\_KEY,}
\DoxyCodeLine{sauceRegion: 'eu',}

\end{DoxyCode}
 Will run the test against {\ttfamily \href{https://ondemand.eu-central-1.saucelabs.com:443/wd/hub/}{\texttt{ https\+://ondemand.\+eu-\/central-\/1.\+saucelabs.\+com\+:443/wd/hub/}}.}


\begin{DoxyCode}{0}
\DoxyCodeLine{sauceUser: process.env.SAUCE\_USERNAME,}
\DoxyCodeLine{sauceKey: process.env.SAUCE\_ACCESS\_KEY,}
\DoxyCodeLine{sauceRegion: 'us',}
\DoxyCodeLine{}
\DoxyCodeLine{// the default}
\DoxyCodeLine{sauceUser: process.env.SAUCE\_USERNAME,}
\DoxyCodeLine{sauceKey: process.env.SAUCE\_ACCESS\_KEY,}

\end{DoxyCode}
 Will run the test against \href{https://ondemand.saucelabs.com:443/wd/hub/}{\texttt{ https\+://ondemand.\+saucelabs.\+com\+:443/wd/hub/}}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22330}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22330}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f5dbe13ad6755ae812627d8056527e351db8b34c}{\texttt{ f5dbe13}}) fix(deps)\+: @types/node is now a dev dependency
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22331}{}\doxysection{5.\+4.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22331}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22332}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22332}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/7b0808396458fbc2bd46c7e929f4effecb2a3f1e}{\texttt{ 7b08083}}) feat(driver\+Provider)\+: Add use\+Existing\+Web\+Driver driver provider (\#4756)
\item (\href{https://github.com/angular/protractor/commit/249e657baa605257c268f09078d56219776db9b1}{\texttt{ 249e657}}) feat(example)\+: add examples of usage protractor framework with angular-\/material components; (\#4891)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22333}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22333}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/39485ca49ad751814ae112b224ae054e697e102f}{\texttt{ 39485ca}}) fix(typo)\+: fixed typo in EC expectation alias (\#4952)
\item (\href{https://github.com/angular/protractor/commit/07fefeb9636f8b3506df2eacbdb4ada29f50fbbd}{\texttt{ 07fefeb}}) fix(browser)\+: browser.\+navigate() return type. (\#4932)

Changing return type of browser.\+navigate() to be Navigation instead of any.
\item (\href{https://github.com/angular/protractor/commit/0b1820c6c1d8b13e8fb2e64f27e4fe1d3cbcdd73}{\texttt{ 0b1820c}}) fix(package-\/lock.\+json)\+: update package-\/lock.\+json to match package.\+json. (\#4931)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22334}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22334}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2632bb67c3ac7773e8b769cd5c5ee5c6d7b69f3d}{\texttt{ 2632bb6}}) deps(webdriver\+\_\+js\+\_\+extender)\+: update webdriver\+\_\+js\+\_\+extender to 2.\+1 (\#4934)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22335}{}\doxysection{5.\+4.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22335}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22336}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22336}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/03e22092557240217bbbcf641476db08cc35df77}{\texttt{ 03e2209}}) feat(driver\+Provider) Adding browserstack\+Proxy param in Browser\+Stack driver\+Provider (\#4852)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22337}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22337}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/492230ab3445ca3aea3e60f55d27cb9825018ef9}{\texttt{ 492230a}}) fix(generate\+\_\+doc.\+sh)\+: Use ES6 lib to compile down to ES5 (\#4884)
\item (\href{https://github.com/angular/protractor/commit/ed955e56a839d7f69da43acb6755763220d3681d}{\texttt{ ed955e5}}) fix(travis\+CI)\+: Update Node versions (\#4847)
\item (\href{https://github.com/angular/protractor/commit/3702a709fe251fed1de9ee1eab38593c2c371e94}{\texttt{ 3702a70}}) fix(local)\+: Ensure webdriver.\+gecko.\+driver path is passed to Selenium (\#4502)
\item (\href{https://github.com/angular/protractor/commit/1c6a1a82f03f2bd5911dfc37f365329d6f5acb60}{\texttt{ 1c6a1a8}}) fix(circleci)\+: Switch to using circleci v2 syntax and fix build errors (\#4837)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22338}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22338}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/056eec23a7d1534d5e8624d42a6c9d1f3106cf5d}{\texttt{ 056eec2}}) deps(webdriver\+\_\+js\+\_\+extender)\+: update webdriver\+\_\+js\+\_\+extender to 2.\+0 (\#4882)
\begin{DoxyEnumerate}
\item update webdriver\+\_\+js\+\_\+extender to 2.\+0
\item update selenium typing to 3.\+0.\+10
\end{DoxyEnumerate}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22339}{}\doxysection{5.\+3.\+2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22339}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22340}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22340}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/4e0a57cff88b470dc5d05698a1341040f65dceb4}{\texttt{ 4e0a57c}}) fix(test)\+: fix async tests

Increase the scripts timeout
\item (\href{https://github.com/angular/protractor/commit/c6703a5ea8ce7a837193ecf478c2096d8c6e99e9}{\texttt{ c6703a5}}) fix(doc)\+: Spelling updates to comments in plugin.\+ts(\#4797)

Updated some of the spelling errors/ punctuation mistakes for clearer understanding.
\item (\href{https://github.com/angular/protractor/commit/76324b80063152ce67c164b6f048682e71771bb6}{\texttt{ 76324b8}}) fix(cli)\+: add more verbose warning if \textquotesingle{}\+\_\+debugger\textquotesingle{} module cannot be found. (\#4800)
\item (\href{https://github.com/angular/protractor/commit/f8f490a82d0ed6965248e1f78bd2ac7ca91548d9}{\texttt{ f8f490a}}) updated CHANGELOG based on sauce\+Selenium\+Address and sauce\+Selenium\+Use\+Http (\#4793)
\item (\href{https://github.com/angular/protractor/commit/6290f27720816dd574ff7a1eccfec6ade1539b71}{\texttt{ 6290f27}}) fix(generate-\/docs)\+: fix generate-\/docs.\+sh. (\#4765)

Ignore generated unstaged files before checking out to new branch; otherwise, the git checkout will fail.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22341}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22341}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/948c7f267feebfd4c6997d8bc02485b573100197}{\texttt{ 948c7f2}}) fix(deps)\+: Update saucelabs for security issue. (\#4805)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22342}{}\doxysection{5.\+3.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22342}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22343}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22343}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/cc2234c762268acab85b6e5d1c13b6480738651b}{\texttt{ cc2234c}}) feat(logger)\+: Add log level configuration (\#1451) (\#4068)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22344}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22344}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c63b99ee029b6730e4b0702ac7c22b4076049e2a}{\texttt{ c63b99e}}) fix(grep)\+: change excluded tests to disabled instead of pending (\#4673)
\item (\href{https://github.com/angular/protractor/commit/9348ccfe65a0488d2929f624e70aef585f72e3ab}{\texttt{ 9348ccf}}) docs(page\+\_\+objects)\+: Remove unnecessary \char`\"{}await\char`\"{} and \char`\"{}async\char`\"{} (\#4732)
\item (\href{https://github.com/angular/protractor/commit/4898db0940e0c0084e7c538a40986f94dc21e7ec}{\texttt{ 4898db0}}) docs(plugins) add protractor-\/cucumber-\/steps plugin to plugins.\+md (\#4721)
\item (\href{https://github.com/angular/protractor/commit/a7411b6a156d45ec2e61f1b6ec951a19d854f5b2}{\texttt{ a7411b6}}) docs(page\+\_\+objects)\+: Add async / await example (\#4675)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22345}{}\doxysection{5.\+3.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22345}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22346}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22346}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/9d8798243d23dd9d338c2eabd11d5a43ab3c31d9}{\texttt{ 9d87982}}) feat(config)\+: allow to use newer versions of Coffee\+Script (\#4567) Coffee\+Script lost the hyphen in the module name about 9 months ago, all the new versions are going to be released as coffeescript not the coffee-\/script
\item (\href{https://github.com/angular/protractor/commit/6ba30e0b356fdb980cf1f2870ef0b5c6bb22ec4e}{\texttt{ 6ba30e0}}) feat(driver\+Providers)\+: Add Test\+Object and Kobiton as driver\+Providers Add Test\+Object and Kobiton as driver\+Providers
\begin{DoxyEnumerate}
\item Add test\+Object and kobiton to driver\+Providers
\item Add test\+Object and kobiton items to cli, config and index
\item Add instructions for using test\+Object and kobiton to server-\/setup
\end{DoxyEnumerate}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22347}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22347}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a62a15417d559346a75fb6e208359ffa5b6b65f1}{\texttt{ a62a154}}) fix(script)\+: fix compile-\/to-\/es5 script (\#4676) make compile-\/to-\/es5 script rely on native es6-\/promise typing
\item (\href{https://github.com/angular/protractor/commit/964baba5eac52452350bf1d29a191558595c5f1b}{\texttt{ 964baba}}) fix(clientsidescript)\+: avoid returning the value of test callback in wait\+For\+Angular (\#4667) The return value could be interpreted as an error by mistake in some situation Also fix a wrong if-\/condition in error reporting
\item (\href{https://github.com/angular/protractor/commit/83e2ba878257e9c85775cd52bf70960f0c45917b}{\texttt{ 83e2ba8}}) fix(website)\+: Locator by.\+name(\textquotesingle{}field\+\_\+name\textquotesingle{}) (\#4653)
\item (\href{https://github.com/angular/protractor/commit/02746dd37726b2647f8f8dbeb1152cd7f902acb0}{\texttt{ 02746dd}}) fix(browser)\+: Add space after full stop in error message. (\#4594) Linkifiers interpret the \char`\"{}.\+If\char`\"{} at the end of the URL as part of the URL.
\item (\href{https://github.com/angular/protractor/commit/7f968e022a7f7ebcda8955651f2907c1a25ecc22}{\texttt{ 7f968e0}}) fix(direct)\+: Use config\textquotesingle{}s gecko\+Driver when specified (\#4554) This change makes the {\ttfamily firefox} capability more closely match {\ttfamily chrome}\textquotesingle{}s. The {\ttfamily firefox} capability was not looking for {\ttfamily config\+\_\+.\+gecko\+Driver} like {\ttfamily chrome} was.
\item (\href{https://github.com/angular/protractor/commit/f9df45619b1744e6615e183965fe093f0e4526e6}{\texttt{ f9df456}}) docs(element)\+: fix minor typo in element.\+ts (\#4471)
\item (\href{https://github.com/angular/protractor/commit/65f206e70a2d13762c841da247557b0ebb7fde7d}{\texttt{ 65f206e}}) docs(website)\+: updated reference from ignore\+Synchronization to wait\+For\+Angular\+Enabled(false). (\#4632)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22348}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22348}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/335680f10ab3c5d1de1eab92868c7b30fb7e3d23}{\texttt{ 335680f}}) fix(circle\+CI)\+: lock the currect version of all dependencies (\#4669) Circle\+CI was broken by the new release of gulp-\/clang-\/format and jasmine
\begin{DoxyEnumerate}
\item pin the version of gulp-\/clang-\/format to 1.\+0.\+23
\item pin jasmine version to 2.\+8.\+0
\item add lock file
\end{DoxyEnumerate}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22349}{}\doxysection{5.\+2.\+2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22349}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22350}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22350}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b3c7404258db55a71e7bc4520973c0665cb0ff06}{\texttt{ b3c7404}}) Revert \char`\"{}fix(jasmine)\+: Update Jasmine to support Node8 async/await (\#4608)\char`\"{} This reverts commit 5d13b00bca651227eb55616363f7d7eb8a91f8e8. This commit is unnecessary now, revert this commit to avoid breaking changes in 5.\+2.\+1
\item (\href{https://github.com/angular/protractor/commit/8e5ad1f9b01ec4629fa079609aa8bedee52f0722}{\texttt{ 8e5ad1f}}) fix(doc)\+: remove unnecessary config in debugging doc/example (\#4622)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22351}{}\doxysection{5.\+2.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22351}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22352}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22352}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a62efc6e401bc1aa7408e3008ccdaa219b528636}{\texttt{ a62efc6}}) feat(locators)\+: Add support for regex in css\+Containing\+Text (\#4532)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22353}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22353}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/e51f0ecb31b7eb361dbf8feaa201ad2fccf9cf14}{\texttt{ e51f0ec}}) fix(doc)\+: update doc for testing with node 8 async/await and chrome inspector. (\#4613)
\item (\href{https://github.com/angular/protractor/commit/b204a835976088131f209a5f873f9f786fa05a2e}{\texttt{ b204a83}}) doc(browser-\/support) improved Firefox documentation (\#4553)
\item (\href{https://github.com/angular/protractor/commit/8d71a1b1b1d314bf0a4ef8c7ecefdd1c7688032e}{\texttt{ 8d71a1b}}) docs(page-\/objects.\+md)\+: Refactor the existing \mbox{\hyperlink{classPage}{Page}} Object example (\#4576)
\item (\href{https://github.com/angular/protractor/commit/95dd3caf4b90b2d42aa1d5b35b0fd48504f802c3}{\texttt{ 95dd3ca}}) doc(tutorial)\+: added example for element.\+get\+Attribute(\textquotesingle{}value\textquotesingle{}) to read text from an input (\#4566)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22354}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22354}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/bb63ab00046fc300d898a39c03fb6d974fe20b57}{\texttt{ bb63ab0}}) Update to the latest blocking proxy (\#4546)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22355}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22355}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/5d13b00bca651227eb55616363f7d7eb8a91f8e8}{\texttt{ 5d13b00}}) fix(jasmine)\+: Update Jasmine to support Node8 async/await (\#4608)

Breaking change for Type\+Script\+: Jasmine\+WD doesn\textquotesingle{}t know anything about async/await, turns off Jasmine\+WD if control flow was disabled.

It will affect Type\+Script tests that are using async/await and

a. miss some await keyword in the test.(Previously, this might cause the test failed silently and be reported as pass), or

b. use Promise in jasmine expect function

{\bfseries{Before}} \`{}\`{}\`{}ts await expect(get\+Promise()).to\+Equal(42); \`{}\`{}\`{} {\bfseries{After}} \`{}\`{}\`{}ts expect(await get\+Promise()).to\+Equal(42); \`{}\`{}\`{}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22356}{}\doxysection{5.\+2.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22356}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22357}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22357}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f7e17f348e738e1a594870d7ff735f2b7ea1853f}{\texttt{ f7e17f3}}) fix(client\+Side\+Scripts)\+: change protractor to support waiting for hybrid app (\#4512)
\item (\href{https://github.com/angular/protractor/commit/4b7cada1317079c20ddf1bb105303e21adba6e32}{\texttt{ 4b7cada}}) fix(sauce)\+: bring back sauce\+Proxy as a configuration option (\#4419)
\item (\href{https://github.com/angular/protractor/commit/b87159b3fcb379b85727a1beb6fd41a914235cf8}{\texttt{ b87159b}}) fix(website)\+: fix all locator examples to use {\ttfamily element} over {\ttfamily browser.\+find\+Element} (\#4413)
\item (\href{https://github.com/angular/protractor/commit/768fd393d1084a8da0ec6eeaa57508bf17519a3f}{\texttt{ 768fd39}}) fix(local)\+: allow local driver provider to use gecko driver from config (\#4412)
\item (\href{https://github.com/angular/protractor/commit/c0b8770ff1a508205b5cf38b5611918e20028fe3}{\texttt{ c0b8770}}) docs(website)\+: fix issue 4246
\item (\href{https://github.com/angular/protractor/commit/f79938e3d138c7bedc66f8c6748704402ea721c4}{\texttt{ f79938e}}) docs(plugins)\+: add ng-\/apimock plugin to plugins.\+md
\item (\href{https://github.com/angular/protractor/commit/ab1afb093107f3a63f6e15f8f315e33576bb414d}{\texttt{ ab1afb0}}) fix(blockingproxy)\+: Start bp\+Runner strictly after setup\+Driver\+Env
\item (\href{https://github.com/angular/protractor/commit/b85e7ee1c53cdc4cfb23dc3d06d40317a27e50e7}{\texttt{ b85e7ee}}) fix(npmignore)\+: .map files in built directory cause stacktrace lines to nowhere Fixes \#4371
\item (\href{https://github.com/angular/protractor/commit/299fc8d96b3e5daf632a1c584728214ababcebf8}{\texttt{ 299fc8d}}) docs(browser-\/support)\+: Fixed incorrect example
\item (\href{https://github.com/angular/protractor/commit/e5a5d59fcabe15860b30944e714bbd8e81ceaeae}{\texttt{ e5a5d59}}) docs(frameworks) align cucumber\+Opts comments
\item (\href{https://github.com/angular/protractor/commit/fe8c480bd860209cc68768de884d050cbf1a5b27}{\texttt{ fe8c480}}) docs(frameworks) update cucumber dry run option
\item (\href{https://github.com/angular/protractor/commit/2e9acf58b76b553c558f56b6a38c161ad50324de}{\texttt{ 2e9acf5}}) docs(plugins) add protractor-\/numerator plugin to plugins.\+md
\item (\href{https://github.com/angular/protractor/commit/3f861ae069df98a06cfa1ede89f56a8d0ec9d5d2}{\texttt{ 3f861ae}}) By.\+js locator should accept functions
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22358}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22358}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/0fbc2c0ac12992bd61712188a96aef6684bef0c1}{\texttt{ 0fbc2c0}}) chore(release)\+: update selenium-\/webdriverjs
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22359}{}\doxysection{5.\+1.\+2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22359}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22360}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22360}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/dd2ccbb1b73b7c90647837cd1c4f6b16b3f6b0ac}{\texttt{ dd2ccbb}}) feat(saucelabs)\+: Add Sauce Labs protocol customization support

New option {\ttfamily sauce\+Selenium\+Use\+Http} available in {\ttfamily protractor.\+conf.\+js} If true, uses \textquotesingle{}http\textquotesingle{} instead of \textquotesingle{}https\textquotesingle{} to connect to Sauce Labs defined by {\ttfamily sauce\+Selenium\+Address}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22361}{}\doxysubsection{Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22361}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1a47076875395648038a39fcd258a77bfcabe05c}{\texttt{ 1a47076}}) fix(ci)\+: Use latest pip on Circle\+CI
\item (\href{https://github.com/angular/protractor/commit/fd59c78407ced4f17e1b4ed4451ce463439aa3c9}{\texttt{ fd59c78}}) fix(elementexplorer)\+: Set script breakpoints with cross-\/platform safe paths.

Fixes \#4011
\item (\href{https://github.com/angular/protractor/commit/12502784b306cbedca8684486c31eeb361da5897}{\texttt{ 1250278}}) fix(cli)\+: Correctly parse list chrome\+Options

Chromedriver requires that certain options always be passed as an array. Optimist passes --single-\/option as a string instead of an array which is invalid. This ensures that we always pass an array, even if a single option is passed via the cli.

Fixes \#4050
\item (\href{https://github.com/angular/protractor/commit/183cd803254f7a3ccb3a8650e8ef06b4fff03446}{\texttt{ 183cd80}}) fix(browser)\+: Fix browser.\+angular\+App\+Root()

By default, it wasn\textquotesingle{}t returning anything. Now it returns a promise that resolves to internal\+Angular\+App\+Root. Fixes \#4233
\item (\href{https://github.com/angular/protractor/commit/bd534fb8b2dfaca9072914dc84ad662891a8c7b2}{\texttt{ bd534fb}}) fix\+: Add \char`\"{}stack\+Trace\char`\"{} option to allowed\+Names in cli.\+ts

This fixes a problem I encountered similar to \#4196 -\/ where {\ttfamily stack\+Trace} is listed as an option but an error is given saying it\textquotesingle{}s an \char`\"{}unknown extra flag\char`\"{}
\item (\href{https://github.com/angular/protractor/commit/82491678de71b43311ea68d496ff807e1c72ee5e}{\texttt{ 8249167}}) fix\+: export Runner, not just its type. (\#4227)
\item (\href{https://github.com/angular/protractor/commit/0eb5b7608e4bfb770878fe443d97ed9aa426c070}{\texttt{ 0eb5b76}}) fix(navigation)\+: ignore unknown JS errors in IE (\#4149)

The {\ttfamily err} object doesn\textquotesingle{}t have the {\ttfamily code} property any more (Selenium Server Standalone 3.\+3.\+1 + IEDriver win32 3.\+3.\+0), so we need a new way to detect those errors. See \#841
\item (\href{https://github.com/angular/protractor/commit/4752ad1287af536c6dd442dd8c74546f978627d9}{\texttt{ 4752ad1}}) chore(examples)\+: Fix TSC issues with example\+Typescript (\#4132)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22362}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22362}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a0a1fac8568f2bfbd6d5721db438aed390e30d23}{\texttt{ a0a1fac}}) chore(deps)\+: Updating webdriver-\/manager and jasminewd2
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22363}{}\doxysection{5.\+1.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22363}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22364}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22364}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/3edd62eccccb67ec7cb71b8c3d8b2c2921a6f7ca}{\texttt{ 3edd62e}}) feat(saucelabs)\+: Add Sauce Labs HTTPS Support (\#4071)
\item (\href{https://github.com/angular/protractor/commit/29f975a34f5885a21525c3746bd3e82d5ae0c51e}{\texttt{ 29f975a}}) feat(plugins)\+: allow plugins to know which browser instance to run against (\#4066)

Closes \href{https://github.com/angular/protractor/issues/4054}{\texttt{ https\+://github.\+com/angular/protractor/issues/4054}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22365}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22365}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/9d69a819c96e408df2b59589d49811a89af1bc74}{\texttt{ 9d69a81}}) deps(typescript)\+: use typescript2.\+0.\+0 (\#4062)
\begin{DoxyItemize}
\item move no\+CF tests to install and fix reference to protractor
\item changed element.\+ts to not use keyof
\item remove gulp task tsc\+:spec
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22366}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22366}

\begin{DoxyItemize}
\item The protocol for a Sauce Labs selenium relay (sauce\+Selenium\+Address in protractor.\+conf.\+js) is \textquotesingle{}https\textquotesingle{} (previously used \textquotesingle{}http\textquotesingle{}). The protocol is not configurable in this version.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22367}{}\doxysection{5.\+1.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22367}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22368}{}\doxyparagraph{Blocking proxy}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22368}
Blocking Proxy is a new experimental feature in Protractor 5 and is behind the {\ttfamily -\/-\/use\+Blocking\+Proxy} or {\ttfamily blocking\+Proxy\+Url}. See the \href{https://github.com/angular/protractor/blob/master/lib/config.ts\#L100}{\texttt{ lib/config.\+ts\#\+L100}}. Other ways to start blocking proxy include using the {\ttfamily -\/-\/highlight\+Delay} and {\ttfamily -\/-\/web\+Driver\+Log\+Dir} flags See \href{https://github.com/angular/protractor/blob/master/lib/config.ts\#L501}{\texttt{ lib/config.\+ts\#\+L501}}.

This adds two options, both of which are implemented with Blocking Proxy. {\ttfamily -\/-\/web\+Driver\+Log\+Dir} will create a readable log with timing information of webdriver commands in the specified directory.

{\ttfamily -\/-\/highlight\+Delay} will pause before clicking on elements or sending keys. While paused, the element that\textquotesingle{}s about to be affected will be highlighted.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22369}{}\doxyparagraph{Webdriver-\/manager}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22369}
Webdriver-\/manager will now by default grab the latest versions of all binaries (standalone, chromedriver, iedriver, gecko driver). Use the {\ttfamily -\/-\/versions.(binary name)} to pin to a specific version. Selenium standalone 3.\+0.\+1 has a bug which prevents it from working with any version of Fire\+Fox. We have tested version 3.\+0.\+0-\/beta4 and know that it works with Fire\+Fox 51, and we expect that the 3.\+0.\+2 release will also work.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22370}{}\doxyparagraph{Type\+Script support}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22370}
For jasmine users, in order to get all the type declarations that are used in jasminewd2, you\textquotesingle{}ll need to install {\ttfamily @types/jasminewd2} in addition to {\ttfamily @types/jasmine} as dev dependencies.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22371}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22371}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/0cd156d6829f23f93403d865b7fdb7eab4f45446}{\texttt{ 0cd156d}}) feat(debugging)\+: Add webdriver logging and highlight delay. (\#4039)

This adds two options, both of which are implemented with Blocking Proxy. --web\+Driver\+Log\+Dir will create a readable log with timing information of webdriver commands in the specified directory.

--highlight\+Delay will pause before clicking on elements or sending keys. While paused, the element that\textquotesingle{}s about to be affected will be highlighted.
\item (\href{https://github.com/angular/protractor/commit/3d98a1668138d36681bf305c9ea67dd1eea38899}{\texttt{ 3d98a16}}) feat(config)\+: Support setting {\ttfamily SELENIUM\+\_\+\+PROMISE\+\_\+\+MANAGER} flag via the config (\#4023)

Closes \href{https://github.com/angular/protractor/issues/3691}{\texttt{ https\+://github.\+com/angular/protractor/issues/3691}}
\item (\href{https://github.com/angular/protractor/commit/4e40fb175e64820bbab24efb376dac80fa6ba2b0}{\texttt{ 4e40fb1}}) feat(browser)\+: chain promises in {\ttfamily browser.\+get} (\#4017)

Closes \href{https://github.com/angular/protractor/issues/3904}{\texttt{ https\+://github.\+com/angular/protractor/issues/3904}}
\item (\href{https://github.com/angular/protractor/commit/33393cad633e6cb5ce64b3fc8fa5e8a9cae64edd}{\texttt{ 33393ca}}) feat(browser)\+: chain some promises in {\ttfamily lib/browser.\+ts} + return promise from {\ttfamily wait\+For\+Angular\+Enabled} (\#4021)

Minor breaking change since {\ttfamily wait\+For\+Angular\+Enabled} no longer returns a boolean Part of angular\#3904 Chaining {\ttfamily browser.\+get} has proved surprisingly complex, so I\textquotesingle{}ll do that in a different PR Also fixed a minor bug in {\ttfamily lib/clientsidescripts.\+js} while debuging
\item (\href{https://github.com/angular/protractor/commit/7cb9739954bc26f0667d671cdb0083f5bd43f2f6}{\texttt{ 7cb9739}}) feat(browser.\+ready)\+: make {\ttfamily browser.\+ready} wait for all async setup work (\#4015)

Closes \href{https://github.com/angular/protractor/issues/3900}{\texttt{ https\+://github.\+com/angular/protractor/issues/3900}}
\item (\href{https://github.com/angular/protractor/commit/b77cb928301fbe4f77ffcdcace424a490581416e}{\texttt{ b77cb92}}) feat(restart)\+: {\ttfamily browser.\+restart} should return a promise (\#4008)

Also allows {\ttfamily browser.\+restart} to work when the control flow is disabled, and fixes it for forked browsers.

Closes \#3899 and \#3896 \href{https://github.com/angular/protractor/issues/3896}{\texttt{ https\+://github.\+com/angular/protractor/issues/3896}}
\item (\href{https://github.com/angular/protractor/commit/4a59412357eb5df592b06dd282d88d6dbc5e4771}{\texttt{ 4a59412}}) feat(angular\+App\+Root)\+: Replace root\+El with browser.\+angular\+App\+Root() (\#3996)

Replace browser.\+root\+El with browser.\+angular\+App\+Root(), which changes the root element in a promise on the control flow. Note that browser.\+root\+El will immediately return the current value, but browser.\+angular\+App\+Root() will return a promise that resolves during the next step in the control flow.

Also update to Blocking\+Proxy 0.\+0.\+3, which allows changing root\+Selector.
\item (\href{https://github.com/angular/protractor/commit/879aac6ee6c1c36d005b538472e2754b987b3368}{\texttt{ 879aac6}}) chore(blockingproxy)\+: Allow using a pre-\/existing Blocking Proxy instance (\#3970)
\item (\href{https://github.com/angular/protractor/commit/bf123adafc442440b2ca10725113b47342ebb24f}{\texttt{ bf123ad}}) feat(elements)\+: Add is\+Present() to Element\+Array\+Finder. (\#3974)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22372}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22372}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f9bee84bc03b6cd6872522b8780327423b789e19}{\texttt{ f9bee84}}) fix(restart)\+: preserve wait\+For\+Angular\+Enabled on restart and add promise chaining

I noticed I missed {\ttfamily wait\+For\+Angular\+Enabled} in \#4037. This commit fixed that.

While I was at it I fixed a minor error where the promises implicitly created by setting {\ttfamily root\+El} and {\ttfamily ignore\+Synchronization} weren\textquotesingle{}t getting chained properly.

Also fixed minor (so minor I think it was impossible to trigger) where browser.\+plugins\+\_\+ could be undefined.
\item (\href{https://github.com/angular/protractor/commit/0b0c224e4056368c2c0030064b4ca4235163276b}{\texttt{ 0b0c224}}) fix(plugins)\+: do not force Managed\+Promise in plugins.\+ts (\#4036)
\item (\href{https://github.com/angular/protractor/commit/9c2274d8f218cabc946dbc6a11d725458c1b4e3a}{\texttt{ 9c2274d}}) fix(restart)\+: preserve properties like {\ttfamily browser.\+base\+Url} upon restart (\#4037)

I also fixed a minor issue where {\ttfamily internal\+Root\+El} wasn\textquotesingle{}t being set when blocking proxy was being used. I also just cleaned up our internal uses of {\ttfamily this.\+root\+El}.

Closes \#4032
\item (\href{https://github.com/angular/protractor/commit/a20c7a7cc1df04f96cb1a9dd971df39883ac173b}{\texttt{ a20c7a7}}) fix(element chaining)\+: make element chaining work when the control flow is disabled (\#4029)

Also added some tests to {\ttfamily spec/ts/no\+CF/smoke\+\_\+spec.\+ts} double checking that the control flow is off
\item (\href{https://github.com/angular/protractor/commit/7481dee75cab1da9d207909e928eee55a9f5a682}{\texttt{ 7481dee}}) fix(cli)\+: Make unknown flag check a warning instead of an error. (\#4028)
\item (\href{https://github.com/angular/protractor/commit/40bbeca003017901760e10831c66d383cf5accf8}{\texttt{ 40bbeca}}) fix(expected\+Conditions)\+: Add tests and fix race conditions around visibility (\#4006)

Add test cases to reproduce the missing element race conditions possible in expected condition methods {\ttfamily visibility\+Of}, {\ttfamily text\+To\+Be\+Present\+In\+Element}, {\ttfamily text\+To\+Be\+Present\+In\+Value} and {\ttfamily element\+To\+Be\+Clickable}.

Add error handler {\ttfamily false\+If\+Missing} to all expected conditions that depend on the presence of an element.

Expected conditions check the presence of an element before other checks, but when an element is removed exactly in the moment after the {\ttfamily is\+Present} and before {\ttfamily is\+Displayed} in {\ttfamily visibility\+Of} the condition used to fail.

This solution does not handle missing elements in ({\ttfamily is\+Enable}, {\ttfamily is\+Displayed}, {\ttfamily is\+Selected}) and focused only on expected conditions (see \#3972)

This problem was also referenced in \#3578 and \#3777
\item (\href{https://github.com/angular/protractor/commit/5856037368ee8d8a21f11eadbfe93d5f46507f60}{\texttt{ 5856037}}) fix(cli)\+: Allow frameworks to specify flags they recognize. (\#3994)

Fix for \#3978. Our initial plan to allow setting --disable\+Checks with an environment variable is insufficient, since the custom framework isn\textquotesingle{}t even require()\textquotesingle{}d until after the config is parsed. This moves the unknown flag check into the runner, and gives frameworks a way to specify extra flags they accept.
\item (\href{https://github.com/angular/protractor/commit/e68dcf1bfd7f32c59ebd23fa16ca53e1a53f8ddf}{\texttt{ e68dcf1}}) fix(driver\+Providers)\+: Check config in the right place. (\#3991)
\item (\href{https://github.com/angular/protractor/commit/eb899208457f83853f043edea5e56b07e87803bc}{\texttt{ eb89920}}) fix(driver\+Providers)\+: Handle promise rejection when starting selenium (\#3989)

Fixes \#3986. Also error if jvm\+Args isn\textquotesingle{}t an array.
\item (\href{https://github.com/angular/protractor/commit/8d2fc07ed28a1b19c03a9869442f76f2963e40a1}{\texttt{ 8d2fc07}}) chore(browser)\+: deprecate {\ttfamily browser.\+get\+Location\+Abs\+Url()}. (\#3969)

Closes \#3185
\item (\href{https://github.com/angular/protractor/commit/15a187204bb8b87255d5f4622094eabc71206315}{\texttt{ 15a1872}}) fix(firefox)\+: Fix direct\+Connect for Firefox 51+ (\#3953)
\item (\href{https://github.com/angular/protractor/commit/81f56a449f8988feba21617ef7533cfa2f06c6f8}{\texttt{ 81f56a4}}) fix(cli)\+: display disable\+Checks option in extra flags error message (\#3964)
\item (\href{https://github.com/angular/protractor/commit/6a4dc7a6a5b796e0215e5b9abf99494ac13cb647}{\texttt{ 6a4dc7a}}) fix\+: no longer use es6 let statement (\#3963)
\begin{DoxyItemize}
\item Currently in Protractor v5 the Angular detection script uses ES6 features like the {\ttfamily let} modifier.
\end{DoxyItemize}

This can break Protractor on browsers, which doesn\textquotesingle{}t support those statements. \begin{quote}
See \href{https://saucelabs.com/beta/tests/275f75091dac40a0a3374d29d912caee/commands\#11}{\texttt{ https\+://saucelabs.\+com/beta/tests/275f75091dac40a0a3374d29d912caee/commands\#11}} \end{quote}

\item (\href{https://github.com/angular/protractor/commit/528338c6722219fdcfc51153b0031a02f0fce046}{\texttt{ 528338c}}) fix(expected\+Condition)\+: fix No\+Such\+Element\+Error in visibility\+Of due to a race condition (\#3777)

Handle No\+Such\+Element\+Error in the expected condition visibility\+Of, which occurred when an element disappears between the is\+Present() and is\+Displayed() check.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22373}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22373}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/5899b676bc2db0005506ae2306350e6ffea3c808}{\texttt{ 5899b67}}) deps(update)\+: update webdriver-\/manager to $^\wedge$12.0.\+1 (\#4042)

Running {\ttfamily webdriver-\/manager update} will now by default grab the latest versions of all binaries (standalone, chromedriver, iedriver, gecko driver). You can continue to pin to a specific versions using the command line option. Example {\ttfamily webdriver-\/manager update -\/-\/versions.\+chrome 2.\+20}. As of this release the latest versions are\+:
\begin{DoxyItemize}
\item gecko v0.\+14.\+0
\item selenium-\/standalone 3.\+0.\+1 is the latest jar file; however, we recommend 3.\+0.\+0-\/beta4. See note below on Firefox support.
\item chromedriver 2.\+27
\item iedriver 3.\+0.\+0

A note on Fire\+Fox support\+: Selenium standalone 3.\+0.\+1 has a bug which prevents it from working with any version of Fire\+Fox. We have tested version 3.\+0.\+0-\/beta4 and know that it works with Fire\+Fox 51, and we expect that the 3.\+0.\+2 release will also work.

closes \#4033
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/cd084a0ca29cd73aa3ce1650188adf7ddfdb7962}{\texttt{ cd084a0}}) deps(jasmine)\+: update jasmine to $^\wedge$2.5.\+3 (\#3960)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22374}{}\doxysection{5.\+0.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22374}
This version includes big changes around upgrading to selenium-\/webdriver 3.\+0.\+x. See the \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ selenium-\/webdriver changelog}}.

For the 5.\+0.\+0 release, we are still using the selenium standalone server 2.\+53.\+1 and recommend using Firefox 47. Firefox 48+ currently is not supported.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22375}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22375}

\begin{DoxyItemize}
\item Minimum node version is now 6.\+9.\+x.
\item When testing with Firefox 47, use the capability option {\ttfamily marionette\+: false} to use the legacy Firefox driver.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{capabilities: \{}
\DoxyCodeLine{  browserName: 'firefox'}
\DoxyCodeLine{\}}

\end{DoxyCode}


After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{capabilities: \{}
\DoxyCodeLine{  browserName: 'firefox',}
\DoxyCodeLine{  marionette: false}
\DoxyCodeLine{\}}

\end{DoxyCode}

\item We moved {\ttfamily @types/jasmine} to a dev\+Dependency. This means that Jasmine Type\+Script users will need to include the {\ttfamily @types/jasmine} as a project dependency. This is to avoid conflicts for users that prefer mocha typings.

After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{"{}dependencies"{}: \{}
\DoxyCodeLine{  "{}@types/jasmine"{}: "{}\string^2.5.38"{}}
\DoxyCodeLine{\}}

\end{DoxyCode}

\item Selenium-\/webdriver methods removed\+: {\ttfamily Web\+Driver.\+prototype.\+is\+Element\+Present}, {\ttfamily Web\+Element.\+prototype.\+get\+Raw\+Id}, {\ttfamily Web\+Element.\+prototype.\+get\+Inner\+Html}, and {\ttfamily Web\+Element.\+prototype.\+get\+Outer\+Html}.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{let isPresent = browser.driver.isElementPresent(By.tagName('a'));}
\DoxyCodeLine{let i = element(locator).getInnerHtml();}
\DoxyCodeLine{let o = element(locator).getOuterHtml();}

\end{DoxyCode}


After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{let isPresent = element(By.tagName('a')).isPresent();}
\DoxyCodeLine{let i = browser.executeScript("{}return arguments[0].innerHTML;"{}, element(locator));}
\DoxyCodeLine{let o = browser.executeScript("{}return arguments[0].outerHTML;"{}, element(locator));}

\end{DoxyCode}

\item Selenium-\/webdriver {\ttfamily Error\+Codes} have been removed.
\item Adding cookies have been changed\+:

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{browser.manage().addCookie('testcookie', 'Jane-\/1234');}

\end{DoxyCode}


After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{browser.manage().addCookie(\{name:'testcookie', value: 'Jane-\/1234'\});}

\end{DoxyCode}

\item Removed {\ttfamily protractor.\+wrap\+Driver()}.
\item You can no longer use {\ttfamily repl} command from within {\ttfamily browser.\+pause()}. Instead, use {\ttfamily browser.\+explore()} to directly enter the {\ttfamily repl}.
\item Sending flags that are not recognized by the CLI throws an error. Since flags are a subset of all configuration options, these errors can be silenced with {\ttfamily -\/-\/disable\+Checks}.
\item Auto-\/detection of the root element. This is a breaking change because it changes the default root element behavior and removes the {\ttfamily config.\+use\+All\+Angular2\+App\+Roots} flag. Modern angular apps now default to using all app hooks, and ng1 apps now check several places, notably the element the app bootstraps to.
\item {\ttfamily sauce\+Proxy} configuration field has been removed. Use {\ttfamily web\+Driver\+Proxy} instead.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{sauceProxy: 'http://sauceProxy'}

\end{DoxyCode}


After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{webDriverProxy: 'http://sauceProxy'}

\end{DoxyCode}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22376}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22376}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ec93c4ab882991410ad9d3f52d87c0f5ec947641}{\texttt{ ec93c4a}}) chore(cli)\+: {\bfseries{breaking change}} throw errors on unknown flags (\#3921)

Unknown flags are options sent that is unrecognized by the CLI. For users that encounter this error but would like to silence it, use\+: {\ttfamily -\/-\/disable\+Checks}.

closes \#3216
\item (\href{https://github.com/angular/protractor/commit/bc583321a233453fc2b89472013b2ec3e1d6b6f9}{\texttt{ bc58332}}) feat(root\+El)\+: {\itshape {\bfseries{breaking change}}} auto-\/detect the root element better (\#3928)

This is a breaking change because it changes the default root element behavior and removes the {\ttfamily config.\+use\+All\+Angular2\+App\+Roots} flag. Modern angular apps now default to using all app hooks, and ng1 apps now check several places, notably the element the app bootstraps to.

closes \#1742
\item (\href{https://github.com/angular/protractor/commit/604fdbf064cc2785a2e745747beeaeb45d27f8ed}{\texttt{ 604fdbf}}) cleanup(config)\+: {\bfseries{breaking change}} Remove redundant sauce\+Proxy config (\#3868)

Removes the {\ttfamily sauce\+Proxy} config field, and uses {\ttfamily web\+Driver\+Proxy} when creating the Sauce\+Labs client.
\item (\href{https://github.com/angular/protractor/commit/9465b9f1e667c9590e05d9ddac16fe5143aa93af}{\texttt{ 9465b9f}}) feat(mobile)\+: add extended wd commands for appium (\#3860)

Also had to make some minor changes to the website to handle longer inheritance chains Closes \href{https://github.com/angular/protractor/issues/1940}{\texttt{ https\+://github.\+com/angular/protractor/issues/1940}}
\item (\href{https://github.com/angular/protractor/commit/0e26b218d5f385dd9871a40553acc174cfdfe26d}{\texttt{ 0e26b21}}) feat(blockingproxy)\+: Add synchronization with Blocking\+Proxy. (\#3813)

This adds support for Blocking\+Proxy behind the flag --use\+Blocking\+Proxy.

If set, the driver providers will start a proxy during their setup phase, passing the selenium address to the proxy and starting a webdriver client that talks to the proxy.

Starting a proxy for each driver provider isn\textquotesingle{}t strictly necessary. However, when we run with multiple capabilities it\textquotesingle{}s easier to handle the logging if each Protractor instance has it\textquotesingle{}s own proxy.

Known issues\+:
\begin{DoxyItemize}
\item Doesn\textquotesingle{}t work with direct\+Connect. You can get the address of chromedriver by mucking around in Selenium internals, but this probably changed for Selenium 3.\+0 and I doubt it\textquotesingle{}s worth figuring out until we upgrade.
\item Doesn\textquotesingle{}t yet work with web\+Driver\+Proxy (but it\textquotesingle{}s an easy fix)
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ca4f1acda3672942307d0f102d586c8889dd3d68}{\texttt{ ca4f1ac}}) chore(driver\+Providers)\+: add warnings to extra driver provider parameters (\#3873)
\begin{DoxyItemize}
\item builds the driver provider in lib/driver\+Providers/index instead of lib/runner closes \#1945
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/681b54a21ee1467d5a95c3693cde148759767d62}{\texttt{ 681b54a}}) refactor(browser)\+: Remove protractor.\+wrap\+Driver() {\bfseries{breaking change}} (\#3827)

Before\+:

Users could create their own selenium driver instance and enable Protractor on it like so\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{let capabilities = webdriver.Capabilities.chrome();}
\DoxyCodeLine{let driver = new webdriver.Builder().usingServer(seleniumAddress)}
\DoxyCodeLine{  .withCapabilities(capabilities).build();}
\DoxyCodeLine{let browser = protractor.wrapDriver(driver);}

\end{DoxyCode}


Over the years, wrap\+Driver() has become increasingly broken as Protractor needs extra configuration options that wrap\+Driver() doesn\textquotesingle{}t set.

After\+:

This method is removed. If users need a new browser instance, they can use {\ttfamily browser.\+fork\+New\+Driver\+Instance()}.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/86fd56917f039efbff8e6f323f4d91fa8bc821a4}{\texttt{ 86fd569}}) feat(ng\+Upgrade)\+: Auto detect ng\+Upgrade apps and make the ng12\+Hybrid flag unnecessary for most users (\#3847)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22377}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22377}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/de153e769292f6b9a99b2d5152bd2929ab1c48af}{\texttt{ de153e7}}) fix(launcher)\+: running get\+Multi\+Capabilities should reject on errors (\#3876)

closes \#3875
\item (\href{https://github.com/angular/protractor/commit/1345137dc5173e868de4b9da6ed16b7928e4c50e}{\texttt{ 1345137}}) fix(is\+Element\+Present)\+: for un-\/wrapped {\ttfamily Web\+Element}s, {\ttfamily browser.\+is\+Element\+Present} was broken (\#3871)

Closes \#3864
\item (\href{https://github.com/angular/protractor/commit/4af3b2e30e925ea9d8e47537ea0a7fe8f04b579d}{\texttt{ 4af3b2e}}) fix(element)\+: Fix typing of Element\+Finder.\+then (\#3835)

Type {\ttfamily then} as optional on Element\+Finder.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22378}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22378}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/4d87c9c20d6905189c0e7ea7214cf3e87c8efe91}{\texttt{ 4d87c9c}}) deps(update)\+: update tslint and @types/selenium-\/webdriver (\#3941)
\begin{DoxyItemize}
\item use @types/selenium-\/webdriver $\sim$2.53.\+39
\item fix for tslint
\end{DoxyItemize}

closes \#3939
\item (\href{https://github.com/angular/protractor/commit/7376708c723976ef8a0a3ad7c245606bef1221db}{\texttt{ 7376708}}) deps(tslint)\+: set tslint to $\sim$4.2 (\#3938)
\item (\href{https://github.com/angular/protractor/commit/cb38ed0a8aae2cb862001e0b6f076aa9972f4489}{\texttt{ cb38ed0}}) Refactor element explorer to work with selenium-\/webdriver 3 (\#3828)

This implementation now relies mostly on promises explicitly, so the control flow is only used to add one large task to the queue. This should pave the way for the eventual removal of the control flow, as well as getting element explorer to work immediately.

BREAKING CHANGE

You can no longer use the {\ttfamily repl} command from within {\ttfamily browser.\+pause()}. Instead, use {\ttfamily browser.\+explore()} to directly enter the repl.
\item (\href{https://github.com/angular/protractor/commit/819605933d2dfef70b4332a727b3b3830e306817}{\texttt{ 8196059}}) chore(dependency)\+: switch to webdriver-\/manager 11.\+1.\+0 and remove {\ttfamily -\/-\/versions.\+chrome 2.\+26} from circle.\+yml (\#3865)
\item (\href{https://github.com/angular/protractor/commit/397bf65e088b640cf3612f9da678180f49939b84}{\texttt{ 397bf65}}) deps(update)\+: move @types/jasmine to dev\+Dependencies (\#3795)
\begin{DoxyItemize}
\item update outdated dependencies
\item move @types/jasmine to dev\+Dependencies closes \#3792
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a3e8b4319d3e8b049e55e5c3c64a7fdb5a132ddf}{\texttt{ a3e8b43}}) deps(selenium-\/webdriver)\+: upgrade to selenium 3 (\#3781)

Please see the \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ selenium-\/webdriver changelog}}
\begin{DoxyItemize}
\item Removed method {\ttfamily Web\+Driver.\+prototype.\+is\+Element\+Present}
\item Removed method {\ttfamily Web\+Element.\+prototype.\+get\+Raw\+Id}
\item Removed {\ttfamily get\+Inner\+Html} and {\ttfamily get\+Outter\+Html}
\item Dependency required for upgrade\+: use {\ttfamily jasminewd2@0.\+1.\+0}.
\item Selenium-\/webdriver requires node version 6+, updating travis and circle yml to use node 6 and 7.
\item Use {\ttfamily instanceof} selenium-\/webdriver error instead of error code. Selenium-\/webdriver error codes have been deprecated.
\item Use executor with selenium-\/webdriver from {\ttfamily lib/http}. Deferred executor has been deprecated.
\item Fix quitting {\ttfamily driver\+Providers}. When calling {\ttfamily webdriver.\+quit}, the control flow is shutdown and will throw an error.
\item Driver provider for direct connect has been modified to use {\ttfamily Service\+Builder} and to call the {\ttfamily Service} to {\ttfamily create\+Session}
\item Note\+: Since this upgrade is still using FF 47, direct connect for Firefox is required to pass \char`\"{}marionette\+: false\char`\"{} in the capabilities. If you do not pass marionette to false, it will look for gecko driver in the PATH.
\item Added a TODO to support FF after 48+ with direct connect and gecko driver.
\item Updated `browser.\+manage().add\+Cookie(\textquotesingle{}testcookie', \textquotesingle{}Jane-\/1234\textquotesingle{});{\ttfamily to use }browser.\+manage().add\+Cookie(\{name\+:\textquotesingle{}testcookie\textquotesingle{}, value\+: \textquotesingle{}Jane-\/1234\textquotesingle{}\});\`{}
\item Updated debug commons for breakpoint updated to selenium-\/webdriver {\ttfamily lib/http} line 432.
\item For mocha tests, {\ttfamily selenium-\/webdriver/testing} uses the global {\ttfamily it} and cannot be reassigned as Protractor\textquotesingle{}s global {\ttfamily it}. Some code has been copied / modified to {\ttfamily lib/frameworks/mocha} to make this work.
\item Capabilities for Firefox 47 requires setting marionette to false.
\item Setup still requires selenium standalone server 2.\+53.\+1 for Firefox tests. Firefox version used is 47.
\item Using selenium standalone server 3, with Firefox 48+ tests fail with gecko driver still do not work.
\item Selenium standalone 3 + FF 49 + gecko driver 0.\+11.\+1 does not work
\item Selenium standalone 3 + FF 48 + gecko driver 0.\+11.\+1 appears to work for a single test but after it quits, selenium standalone no longer works with firefox. When firefox 48 exists, logs show the following\+:

\`{}\`{}\`{} 20\+:01\+:14.\+814 INFO -\/ Executing\+: \mbox{[}delete session\+: e353fa1b-\/e266-\/4ec3-\/afb3-\/88f11a82473a\mbox{]}) \mbox{[}GFX1-\/\mbox{]}\+: Receive IPC close with reason=Abnormal\+Shutdown \mbox{[}Child 30665\mbox{]} \#\#\#!!! ABORT\+: Aborting on channel error.\+: file /builds/slave/m-\/rel-\/m64-\/00000000000000000000/build/src/ipc/glue/\+Message\+Channel.cpp, line 2052 \mbox{[}Child 30665\mbox{]} \#\#\#!!! ABORT\+: Aborting on channel error.\+: file /builds/slave/m-\/rel-\/m64-\/00000000000000000000/build/src/ipc/glue/\+Message\+Channel.cpp, line 2052 \`{}\`{}\`{}
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/eb31c9c7755399bcd01630158d900e0b940e9c31}{\texttt{ eb31c9c}}) deps(types)\+: update @types/selenium-\/webdriver dependency (\#3886)

Fixes issue \#3879 and adds the protractor.\+Key.\+chord method
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22379}{}\doxysection{4.\+0.\+14}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22379}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22380}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22380}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/83694f5e66592c5e229db98af3733ff73dac8392}{\texttt{ 83694f5}}) fix(types)\+: update for selenium-\/webdriver types creating transpile errors (\#3848)
\begin{DoxyItemize}
\item pin package.\+json to a specific version of @types/selenium-\/webdriver
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ea09be4ff0750d1d0873677fac9055a9acb630b3}{\texttt{ ea09be4}}) fix(jasmine)\+: Return the full test name in Jasmine test results. (\#3842)

Fixes \#3510
\item (\href{https://github.com/angular/protractor/commit/76cb4b4c2ac892f9785dc1506cbc0b490eea91fe}{\texttt{ 76cb4b4}}) fix(element)\+: Fix typing of then function (\#3785)
\item (\href{https://github.com/angular/protractor/commit/5a12d69f34fd80234455bbe6457e125a27a07e54}{\texttt{ 5a12d69}}) fix(config)\+: cucumber\+Opts.\+require should be an optional Array of strings (\#3817)
\begin{DoxyItemize}
\item Both cucumber options require and format now support {\ttfamily string} or {\ttfamily string\mbox{[}\mbox{]}} see \#3822 \#3817
\item Remove no longer available options and fix {\ttfamily dry\+Run} type
\item Update comment for {\ttfamily dry\+Run}
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22381}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22381}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b337a8e8547af0b90663a35b07fd30b55ff61dd0}{\texttt{ b337a8e}}) feat(config)\+: add selenium\+Server\+Start\+Timeout (\#3791)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22382}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22382}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/688f5d6a089275ac99688196cd66f345c64adfec}{\texttt{ 688f5d6}}) deps(update)\+: update vrsource-\/tslint-\/rules and webdriver-\/manager (\#3856)
\item (\href{https://github.com/angular/protractor/commit/c437fd3315278e7536a8385a9769e4fbd954d0a6}{\texttt{ c437fd3}}) deps(selenium-\/webdriver)\+: clean up types selenium-\/webdriver (\#3854)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22383}{}\doxysection{4.\+0.\+13}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22383}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22384}{}\doxysubsection{Bug Fix}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22384}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c3978ec166760ac07db01e700c4aaaa19d9b5c38}{\texttt{ c3978ec}}) fix(revert)\+: element(locator).then should not appear in the docs and change reverted. (\#3808)
\begin{DoxyItemize}
\item change comments to not be in JSDoc format
\item reverts change {\ttfamily element(locator).then}
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22385}{}\doxysection{4.\+0.\+12}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22385}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22386}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22386}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/742f26465ca926c39bf28f03390a45030c15acf3}{\texttt{ 742f264}}) fix(driver\+Providers)\+: quit forked instances w/ local driver provider (\#3787)
\begin{DoxyItemize}
\item fix driver provider quit session to not throw error and quit
\item should fix sauce labs test, enabling expected conditions test with forked instance
\item checked that chromedriver does not persist in the background
\item add local driver test with forked instance to test suite
\item organize attach session and local specs to driver\+Providers directory closes \#3780, closes \#3779, closes \#3772
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/7d481d6886b39cb476b889de5d14186bda6dc066}{\texttt{ 7d481d6}}) fix(\+Expected\+Conditions)\+: non-\/static Expected\+Conditions for browser (\#3766)
\begin{DoxyItemize}
\item Update sauce lab binary to run on travis.
\item Disable expected conditions test that forks the browser. This issue appears to not be specific to sauce labs. Also can reproduce this with a local driver provider. Additional work is required around driver providers and the runner.
\item Add TODO to enable test in the future when this is resolved. closes \#3761
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22387}{}\doxysection{4.\+0.\+11}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22387}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22388}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22388}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/6ebee72088016085e93d268effabcbe0b3d0a70f}{\texttt{ 6ebee72}}) feat(config)\+: Add \textquotesingle{}random\textquotesingle{} and \textquotesingle{}seed\textquotesingle{} jasmine config options (\#3467)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22389}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22389}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2048182206e88dd4cde0e92cfac3ed97cbe38f15}{\texttt{ 2048182}}) docs(timeout)\+: Update timeout error message and docs (\#3723)
\item (\href{https://github.com/angular/protractor/commit/f3938f9fcd1b91272f2f11d4d39e458576fb75b0}{\texttt{ f3938f9}}) fix(jvm\+Args)\+: fixes jvm\+Args launching selenium from config (\#3698)

closes \#3697
\item (\href{https://github.com/angular/protractor/commit/21d534fad28f84e8cef166348119387e49661227}{\texttt{ 21d534f}}) fix(types)\+: Make element.\+then()\textquotesingle{}s signature more broad. (\#3719)
\item (\href{https://github.com/angular/protractor/commit/e9061b30c3673344d776187682d1c735aaad69f7}{\texttt{ e9061b3}}) chore(types)\+: make plugins.\+ts more strongly-\/typed (\#3685)
\item (\href{https://github.com/angular/protractor/commit/f42e0b3dc824404ac0c86364bf5de4b657cf30ea}{\texttt{ f42e0b3}}) fix(globals)\+: Resolve exported globals dynamically. (\#3716)

fixes \#3677
\item (\href{https://github.com/angular/protractor/commit/d7fa74464709c532d451fdead78bc57b21956784}{\texttt{ d7fa744}}) fix(util)\+: Fix adding stack traces to Errors thrown as strings (\#3687)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22390}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22390}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a1c8a23fea3542eabeae6e7bc59f3c2ffa0fda94}{\texttt{ a1c8a23}}) chore(deps)\+: Downgrade jasmine to 2.\+4.\+1 (\#3715)

Upgrading to 2.\+5.\+2 causes \#3606. We\textquotesingle{}ll need to wait on a fix for jasmine/jasmine-\/npm\#95 before upgrading.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22391}{}\doxysection{4.\+0.\+10}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22391}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22392}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22392}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/70834269ac375f2be5a6cadf8ec9169cf19abff6}{\texttt{ 7083426}}) feat(hybrid)\+: set ng12hybrid flag in the config (\#3452)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22393}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22393}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b67d8eb4101ee80c53476d1640865ca612793436}{\texttt{ b67d8eb}}) fix(restart)\+: typescript fix for browser.\+restart (\#3658)

closes \#3648
\item (\href{https://github.com/angular/protractor/commit/6626ce7690e1120c3b246eff7793a26cb038b091}{\texttt{ 6626ce7}}) fix(launcher) Ignore uncaught exceptions from webdriver. (\#3608)
\item (\href{https://github.com/angular/protractor/commit/5cef1bf20f88a2c3bb8944afbc6a328fc273aedd}{\texttt{ 5cef1bf}}) Explicitly remove newlines from get\+Text() (\#3618)

MSEdge does not properly remove newlines, which causes false negatives when using {\ttfamily text\+To\+Be\+Present\+In\+Element()}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22394}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22394}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c11945a1b67bdc774b267f101887dc3f575ad00b}{\texttt{ c11945a}}) deps(outdated)\+: webdriver-\/manager and @types updated
\begin{DoxyItemize}
\item webdriver-\/manager 10.\+2.\+6 uses the latest chromedriver, version 2.\+25
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22395}{}\doxysection{4.\+0.\+9}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22395}
This version includes a breaking change to the Type\+Script import statement. Please see the feature below.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22396}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22396}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/5034c89242794dd14aba294ba3468937e06a7b69}{\texttt{ 5034c89}}) feat(typescript)\+: move typescript variable instances from protractor/… (\#3565)

Breaking change for Type\+Script\+: Instead of importing globals like {\ttfamily browser} from {\ttfamily protractor/globals}, import from {\ttfamily protractor}.

Before\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{import \{browser, element\} from 'protractor/globals';}
\DoxyCodeLine{import \{ElementFinder\} from 'protractor';}
\DoxyCodeLine{}
\DoxyCodeLine{describe('my app', () => \{}
\DoxyCodeLine{  myElement: ElementFinder;}
\DoxyCodeLine{}
\DoxyCodeLine{  beforeEach(() => \{}
\DoxyCodeLine{    browser.get('example.com');}
\DoxyCodeLine{    myElement = element(by.css('foo'));}
\DoxyCodeLine{  \});}
\DoxyCodeLine{\});}

\end{DoxyCode}


After


\begin{DoxyCode}{0}
\DoxyCodeLine{import \{browser, element, ElementFinder\} from 'protractor';}
\DoxyCodeLine{}
\DoxyCodeLine{describe('my app', () => \{}
\DoxyCodeLine{  myElement: ElementFinder;}
\DoxyCodeLine{}
\DoxyCodeLine{  beforeEach(() => \{}
\DoxyCodeLine{    browser.get('example.com');}
\DoxyCodeLine{    myElement = element(by.css('foo'));}
\DoxyCodeLine{  \});}
\DoxyCodeLine{\});}

\end{DoxyCode}


Closes \#3564\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22397}{}\doxysection{4.\+0.\+8}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22397}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22398}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22398}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/58459a94b9e7a54f4b48614b93c0614177a8a522}{\texttt{ 58459a9}}) fix(types)\+: do not publish built/globals.\+d.\+ts (\#3546)
\begin{DoxyItemize}
\item do not publish built/globals.\+d.\+ts
\item remove type interface for Http\+Proxy\+Agent and set to to any
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22399}{}\doxysection{4.\+0.\+7}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22399}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22400}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22400}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a68dd3f0c6e33f93a5b7e9674197154b0e68cedd}{\texttt{ a68dd3f}}) deps(jasmine)\+: lower jasmine version down to 2.\+4.\+1 (\#3540)
\begin{DoxyItemize}
\item upgrading to 2.\+5.\+x no longer logs jasmine output
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22401}{}\doxysection{4.\+0.\+6}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22401}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22402}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22402}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d18bba3e288610dd606aac4b656581da0dc65491}{\texttt{ d18bba3}}) fix(types)\+: remove relative path used for @types/node and @types/jasmine (\#3535)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22403}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22403}
closes \#3533
\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/4e7e8ec2c0a018e6159b557decee6b2df53958b5}{\texttt{ 4e7e8ec}}) deps(outdated)\+: update types/q and jasmine (\#3525)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22404}{}\doxysubsection{Other}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22404}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/9d5edbe315ea70aad1fd0a2eaeff3328a2f8ee93}{\texttt{ 9d5edbe}}) chore(node)\+: require the minimum node version 4.\+2.\+x required by selenium-\/webdriver (\#3534)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22405}{}\doxysection{4.\+0.\+5}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22405}
In this version, there are several small changes that affect Type\+Script users from the previous version 4.\+0.\+4. Here are some of the steps to resolve any transpiling errors\+:


\begin{DoxyItemize}
\item In your package.\+json, use Type\+Script 2.\+0.\+0. This will allow Protractor to use the {\ttfamily @types/node} and {\ttfamily @types/jasmine} installed in node\+\_\+modules.
\item Remove {\ttfamily jasmine} and {\ttfamily node} from your {\ttfamily typings.\+json} since these types are already included via {\ttfamily @types}. If these were the only ambient typings installed, remove the {\ttfamily typings.\+json} file.
\item If you still have a {\ttfamily typings.\+json} file, remove {\ttfamily typings} directory and install a fresh set of ambient typings with\+: {\ttfamily typings install}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22406}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22406}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/30102fbdaa6354e8ba1a067c6731799aa0f0ff42}{\texttt{ 30102fb}}) feat(util)\+: Allow more verbose logging with multiple sessions (\#2985). (\#3499)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22407}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22407}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c5cc75b41bc1a860061a5da1c23b718d440815ed}{\texttt{ c5cc75b}}) fix(logger)\+: Set the log level based on the config at startup. (\#3523)

Fixes \#3522. Also fix the mocha spec to stop yelling at us about ES6 arrow functions.
\item (\href{https://github.com/angular/protractor/commit/c7fff5e9182c5a2a96b57f4f23889b5a5a13f44e}{\texttt{ c7fff5e}}) fix(jasmine)\+: Pass control flow to Jasminewd (\#3519)

Fixes \#3505 and \#2790, which is caused by Jasmine\+Wd and Protractor using different controlflow instances
\item (\href{https://github.com/angular/protractor/commit/64b491034c0373755a2f34db5db1810b8d90187a}{\texttt{ 64b4910}}) fix(debugger)\+: Fix issues when calling pause() multiple times (\#3501) (\#3504)
\item (\href{https://github.com/angular/protractor/commit/143c710b5612667c183eacc7e080b1e172d9f97e}{\texttt{ 143c710}}) chore(types)\+: webdriver typings for elements and browser (\#3513)
\begin{DoxyItemize}
\item include node and jasmine dependency to built/index.\+d.\+ts
\item update example and spec/install to not need @types/jasmine and @types/node to install
\item add more selenium-\/webdriver to gulp task
\item added an interface in globals for Error to include a code and stack
\item improve webdriver typings to elements and browser
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/8ca98339341434fcff500accd34acfe97b5840e1}{\texttt{ 8ca9833}}) fix(mocha)\+: Wrap it.\+only with the selenium adapter. (\#3512)

Fixes \#3045. Since mocha 2.\+4.\+1, we should be wrapping global.\+it.\+only.
\item (\href{https://github.com/angular/protractor/commit/f23d0277e8796fef4b4679043d52009149e22ce9}{\texttt{ f23d027}}) chore(types)\+: webdriver typings for locators (\#3507)
\begin{DoxyItemize}
\item temporarily add typings for selenium-\/webdriver.\+d.\+ts
\item include selenium-\/webdriver dependency to built/index.\+d.\+ts
\item add webdriver typings to locators
\item update example and spec/install to not use typings.\+json
\begin{DoxyItemize}
\item spec test updated to get the tsc test to pass
\end{DoxyItemize}
\item includes clang formatting fixes
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/e0b151a8b4e40364d4b7ac369faf7c5702dcf0a0}{\texttt{ e0b151a}}) fix(launcher)\+: Handle uncaught exceptions that are strings. (\#3506)

Also clean up instances where we were throwing strings instead of Errors.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22408}{}\doxysection{4.\+0.\+4}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22408}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22409}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22409}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c5faf084b1ad16bda731140d91644487984e4600}{\texttt{ c5faf08}}) feat(browser)\+: auto-\/unwrap Element\+Finder into Web\+Element for selenium funtions (\#3471)
\item (\href{https://github.com/angular/protractor/commit/a379b33a6a472ff1a2a1d2da935e11ecb11573d1}{\texttt{ a379b33}}) feat(plugins)\+: support on\+Prepare in plugins (\#3483)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22410}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22410}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d10bc99198fa1163356ff5937bd5cbed89d58f8b}{\texttt{ d10bc99}}) deps(outdated)\+: update types/q and saucelab
\item (\href{https://github.com/angular/protractor/commit/4252000dd847399c5c05c561aaf71a5467f94846}{\texttt{ 4252000}}) deps(types)\+: typescript and typings dependencies (\#3485)
\begin{DoxyItemize}
\item remove typings dependency, scripts, and gulp task
\item add @types dependencies
\item clean up globals.\+ts from npm publishing
\item add declaration flag for tsc globals gulp task
\item ignore globals.\+d.\+ts from tsconfig and .gitignore closes \#3484
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22411}{}\doxysection{4.\+0.\+3}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22411}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22412}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22412}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/5f690fe0d0526d5ed4cc482fb5915d28eedbe11e}{\texttt{ 5f690fe}}) fix(export)\+: export selenium-\/webdriver (\#3433)
\begin{DoxyItemize}
\item rename to Protractor\+Browser to be able to export selenium-\/webdriver Browser as Browser
\item export all selenium-\/webdriver items and subfolders in ptor
\item update dependency tests for selenium
\item add tests when protractor is installed closes \#209227
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/27f798117fc599ce369026ebbbf28b818bbbaac6}{\texttt{ 27f7981}}) fix(config)\+: fix interface for functions such as on\+Prepare (\#3434)

closes \#3431
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22413}{}\doxysection{4.\+0.\+2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22413}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22414}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22414}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/767d552c4ba7972085406b8b9f40fc57da1d214f}{\texttt{ 767d552}}) fix(types)\+: typescript global reference and type declaration fixes (\#3424)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22415}{}\doxysection{4.\+0.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22415}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22416}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22416}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ee8ec9124477ed20702d6a09a51274864867da1a}{\texttt{ ee8ec91}}) fix(element)\+: set variables to public in constructor (\#3417)

closes \#3414
\item (\href{https://github.com/angular/protractor/commit/72669029636e56911de59ec90f0d893e7406dc1d}{\texttt{ 7266902}}) fix(sauce)\+: sauce\+Agent passed incorrectly to sauce node module (\#3415)

closes \#3410
\item (\href{https://github.com/angular/protractor/commit/828e80c2f14f3d1a4ac9b1b3b0ae0c5cd322e118}{\texttt{ 828e80c}}) fix(browserstack)\+: mark test suite as failed/passed on Browser\+Stack (\#3409)

closes \#3256
\item (\href{https://github.com/angular/protractor/commit/71532f055c720b533fbf9dab2b3100b657966da6}{\texttt{ 71532f0}}) fix(hybrid)\+: add flag specifying that an app is an ng1/ng2 hybrid (\#3403)

Needed for angular2 after rc2
\item (\href{https://github.com/angular/protractor/commit/2a3a0dc80edccbb72e6b2ca8c487b1eaacf15a20}{\texttt{ 2a3a0dc}}) fix(exports)\+: fix type exports and require(\textquotesingle{}protractor\textquotesingle{}) exports (\#3404)
\begin{DoxyItemize}
\item fix(package)\+: set main to ptor instead of browser
\item fix(exports)\+: fix type exports and require(\textquotesingle{}protractor\textquotesingle{}) exports
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b2eaa290bbd1d069fdaf8f25eee5eb3da611b589}{\texttt{ b2eaa29}}) fix(types)\+: output plugin typings (\#3389)
\begin{DoxyItemize}
\item output plugin typings
\item change Protractor\+Plugin to an interface
\item doc clean up closes \#3365
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d2145b129af3e220abf656731c2491cdf29030d1}{\texttt{ d2145b1}}) fix(launcher)\+: output uncaught exception error (\#3390)
\begin{DoxyItemize}
\item split out message and stack to hopefully provide more information to the error closes \#3384
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d7cf42e85f0a3c9288722ee47c15d08f8b8ab115}{\texttt{ d7cf42e}}) fix(protractor)\+: export class definitions under the protractor namespace (\#3393)

closes \#3377
\item (\href{https://github.com/angular/protractor/commit/2e83dcd95d11e1fd10f011ac2a058bb33a1607ff}{\texttt{ 2e83dcd}}) fix(types)\+: add webdriver.\+promise and webdriver.\+Web\+Element to namespace (\#3392)
\begin{DoxyItemize}
\item fix(types)\+: add webdriver.\+promise and webdriver.\+Web\+Element to namespace closes \#3391
\item fix(protractor)\+: export class definitions under the protractor namespace closes \#3377
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/dcbc832b6abdbdeb408c1741198bb20b5b9042a2}{\texttt{ dcbc832}}) fix(types)\+: use protractor from global namespace (\#3388)
\item (\href{https://github.com/angular/protractor/commit/ee038f945844490e7e57c78a57ee2a049d5a823d}{\texttt{ ee038f9}}) fix(error message)\+: do not crash of thrown error has made {\ttfamily stack} readonly (\#3372)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22417}{}\doxysection{4.\+0.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22417}
This version includes some big changes, so we\textquotesingle{}ve decided to make it version 4.\+0!


\begin{DoxyItemize}
\item webdriver-\/manager is now it\textquotesingle{}s \href{https://www.npmjs.com/package/webdriver-manager}{\texttt{ own NPM}}, so you can use it in your own projects. Protractor depends on it, though, so you shouldn\textquotesingle{}t need to change anything. However, because it is a new dependency you\textquotesingle{}ll need to rerun {\ttfamily webdriver-\/manager update}.
\item Protractor has Type\+Script typings! See the \href{https://github.com/angular/protractor/tree/master/exampleTypescript}{\texttt{ example}} for details on how to use Type\+Script in your tests.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22418}{}\doxysubsection{Breaking changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22418}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d932ad7e853c0bda5d45b478a5c0271d072b6794}{\texttt{ d932ad7}}) chore(browser)\+: rename protractor to browser and add a protractor namespace (\#3214)
\begin{DoxyItemize}
\item added wrap\+Driver method from the browser.\+ts and Expected\+Conditions to the protractor namespace
\item imported selenium webdriver Action\+Sequence, Key, promise, Command, and Command\+Name to the protractor namespace
\end{DoxyItemize}
\item Selenium Webdriver has deprecated get\+Inner\+Html and get\+Outer\+Html. You\textquotesingle{}ll need to update your tests to not use these methods.
\item Protractor node module no longer has a config.\+json file. This is now handled in the webdriver-\/manager node module and the files are also downloaded to the webdriver-\/manager/selenium folder.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22419}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22419}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d6910c168550da590b3d4db42f5c853e81cf83b6}{\texttt{ d6910c1}}) fix(edge)\+: Use reset\+Url about\+:blank for Microsoft\+Edge (\#3267)
\item (\href{https://github.com/angular/protractor/commit/f2055181e60fd358c1764fe716af3d64fc64810b}{\texttt{ f205518}}) fix(launcher)\+: resolve promise for get\+Multi\+Capabilities (\#3195)

closes \#3191
\item (\href{https://github.com/angular/protractor/commit/f149bd1e91e749a77e8ee147fdb3881584ae6851}{\texttt{ f149bd1}}) fix(docs)\+: Change extension for docs links to .ts (\#3187)

closes \#3170
\item (\href{https://github.com/angular/protractor/commit/67474e05e73d3facead7c60150c18a2d866185c7}{\texttt{ 67474e0}}) chore(config\+Parser)\+: allow non-\/glob file pattern (\#2754)

Cucumber allows line numbers to be passed in the filename in the form of {\ttfamily features/some.\+feature\+:42}. Glob expanding that results in an empty array and nothing being passed to the framework runner. This change checks for glob magic characters and only tries expanding it if found. Otherwise it just passes the filename verbatim. This was previously handled in \mbox{[}\#2445\mbox{]} by stripping the line number first, but this is a more generic (non-\/cucumber) way to do it. Glob needed to be upgraded for this which resulted in a weird \href{https://github.com/npm/npm/issues/10637}{\texttt{ npm 3 bug}}. Removing the rimraf package resolved this. It was only used to generate documentation which itself was removed a while ago.
\item (\href{https://github.com/angular/protractor/commit/f311320a1aed09b07d926d0c2aa586202f591b5b}{\texttt{ f311320}}) fix(website)\+: edit get\+Text JSDoc for short\+Description (\#3310)

closes \#3233
\item (\href{https://github.com/angular/protractor/commit/ba63a92de021193c90794c54fefae39d806fba4a}{\texttt{ ba63a92}}) fix(util)\+: check stack exists before filtering the stack trace (\#3309)

closes \#3224
\item (\href{https://github.com/angular/protractor/commit/c86acd44bca821491558506964fe1ba8ed5b702a}{\texttt{ c86acd4}}) chore(website)\+: fix website for items to appear properly (\#3314)
\begin{DoxyItemize}
\item Fix order for website (see \#3163. Does not include \$ / \$\$)
\item Replace \begin{DoxyReturn}{Returns}
with 

so descriptions will appear
\end{DoxyReturn}

\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/e9b49f24f34730e0648d262be1c410a7f585703a}{\texttt{ e9b49f2}}) fix(config)\+: do not flatten capabilities (\#3291)

This is no longer necessary in the latest version of selenium-\/webdriver. Without this change, {\ttfamily -\/-\/capabilities.\+chrome\+Options.\+binary} will do nothing, for example. Closes \#3290
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22420}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22420}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/78f3c64e6d466b44174417d4d6fbc382dbad34b1}{\texttt{ 78f3c64}}) chore(exit\+Codes)\+: adding exit code for browser connect errors (\#3133)
\begin{DoxyItemize}
\item add exit code for browser connect errors
\item add exit code for browserstack error
\item add browser error for debug with multiple capabilities
\item use thrown stack traces for errors (instead of creating new ones) with capture\+Stack\+Trace
\item allow for errors to suppress exit code for config parser thrown error
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/85209f42621b8992c777263458e9fc4772968777}{\texttt{ 85209f4}}) feat(webdriver)\+: extract webdriver-\/manager into a separate node module (\#3068)

closes \#607, \#2402
\begin{DoxyItemize}
\item Removed the config.\+json. This will be managed now by webdriver-\/manager.
\item Wedriver-\/manager downloads the file to the node\+\_\+modules/webdriver-\/manager/selenium folder. This will no longer appear in the protractor directory.
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/83169174243c7ef9767a52d86e649838aa4759f9}{\texttt{ 8316917}}) feat(expected\+Conditions)\+: adding url\+Is and url\+Contains (\#3237)
\begin{DoxyItemize}
\item adding url\+Is and url\+Contains
\item tests for Url\+Is and Url\+Contains
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22421}{}\doxysubsection{Dependency Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22421}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/43530693f6cafd1d3cd3407bd5d1088b51ab8101}{\texttt{ 4353069}}) deps(outdated)\+: Update outdated dependencies (\#3251)

Updated the following outdated packages\+: body-\/parser, chai, chai-\/as-\/promised, glob, jshint, mocha, request, saucelabs, typescript, typings
\item (\href{https://github.com/angular/protractor/commit/a6cae73e2266a20751548047f0d3721a5bd73807}{\texttt{ a6cae73}}) deps(selenium)\+: upgrade to selenium-\/webdriver 2.\+53.\+2 (\#3223)

closes \#3173, closes \#3167, closes \#3058
\item (\href{https://github.com/angular/protractor/commit/128f8e197e28601cc93228d917a0e37d4ab29a15}{\texttt{ 128f8e1}}) dep(webdrivermanager)\+: upgrade to 10.\+1.\+0 (\#3312)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22422}{}\doxysubsection{Other}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22422}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2a391bc1264bac2f9906b3cba58b944a42c692e3}{\texttt{ 2a391bc}}) chore(es7)\+: async/await example
\item (\href{https://github.com/angular/protractor/commit/bb65e5aff2719eaf247d0821bdf48c512cf18602}{\texttt{ bb65e5a}}) chore(website)\+: clean up documentation (\#3334)
\begin{DoxyItemize}
\item Remove get\+Inner\+Html and get\+Outer\+Html from inherited Web\+Element docs.
\item Remove some of the goog.\+provide. Only one is required to build the website.
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f5dc4f9f9a26699b847ed8a89ce64f332ee78d6d}{\texttt{ f5dc4f9}}) chore(example)\+: add a protractor typescript example (\#3323)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22423}{}\doxysection{3.\+3.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22423}
{\itshape The \href{http://www.protractortest.org}{\texttt{ Protractor Website}} API docs have been streamlined. We\textquotesingle{}ve also, internally, moved to using Type\+Script and building down to JS! Also, the logger has been improved.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22424}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22424}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/6f22d5ade48f0d97990cbe69d956da122f2f8358}{\texttt{ 6f22d5a}}) fix(bootstrap)\+: fix bootstrap for older versions of angular

Trying to use the debug label for window.\+name fails for versions of angular older than 1.\+2.\+24. See \href{https://github.com/angular/protractor/issues/3115}{\texttt{ \#3115}}
\item (\href{https://github.com/angular/protractor/commit/bd78dfc79b1435d124c994482df6879066079a4d}{\texttt{ bd78dfc}}) fix(protractor)\+: is\+Present() should work with out of bounds errors (\#3108)
\item (\href{https://github.com/angular/protractor/commit/88dd568c5295234a5211a23e12666e199606e437}{\texttt{ 88dd568}}) fix(\+No\+Such\+Element\+Error)\+: add \textquotesingle{}new\textquotesingle{} keyword to instantiate class

The class No\+Such\+Element\+Error is called without the new keyword in the {\ttfamily Element\+Array\+Finder.\+prototype.\+count} causing a `Class constructors cannot be invoked without \textquotesingle{}new'\`{}

closes \#3079
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22425}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22425}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/afdd9d730c198dc97e91bb275c036a754c15140e}{\texttt{ afdd9d7}}) feat(logger)\+: improve logging methods (\#3131)
\item (\href{https://github.com/angular/protractor/commit/5fa94db5a9a4787f480389d382eef7e636b45f81}{\texttt{ 5fa94db}}) feat(exit\+Codes)\+: adding exit codes for configuration file errors (\#3128)
\item (\href{https://github.com/angular/protractor/commit/76861fdc4c57c2aaa984e05e46ff9789ce750260}{\texttt{ 76861fd}}) feat(element)\+: equals

Easier to use version of webdriver.\+Web\+Element.\+equals
\item (\href{https://github.com/angular/protractor/commit/582411b7ad6c0f9176b231dc51dc328b98affbdf}{\texttt{ 582411b}}) feat(driver\+Provider/sauce) Add build id as a configurable option
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22426}{}\doxysubsection{Dependency Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22426}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b4d1664141b609c5e5790108e3003fe777c248ca}{\texttt{ b4d1664}}) deps(jasminewd2)\+: bump jasminewd2 to 0.\+0.\+9
\item (\href{https://github.com/angular/protractor/commit/b6f1a63da77ec88a3f487e5a099df8febe3742aa}{\texttt{ b6f1a63}}) feat(protractor)\+: Shows locator used when a timeout occurs
\item (\href{https://github.com/angular/protractor/commit/de4b33eaab1546d0ef3a746cfd222e80f0ec28a1}{\texttt{ de4b33e}}) feat(webdriver)\+: Added NO\+\_\+\+PROXY environment variable support to webdriver-\/manager

closes \#3046
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22427}{}\doxysection{3.\+2.\+2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22427}
{\itshape This release is a hotfix for webdriver-\/manager iedriver}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22428}{}\doxysubsection{Bug Fix}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22428}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c6a3b5eab09d95f9d2170e4aface5559cd6b0132}{\texttt{ c6a3b5e}}) fix(webdriver) -\/ fix file type for internet explorer driver file
\item (\href{https://github.com/angular/protractor/commit/d3bd1702040cde5b9d0a3c1578d0d8e16597224c}{\texttt{ d3bd170}}) fix(bootstrap)\+: enable debug info before setting defer label

Note that in most cases, this should not have surfaced as an issue because the base test mock modules will also try to turn on debug info.

Closes \#3009
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22429}{}\doxysection{3.\+2.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22429}
{\itshape This release is a hotfix for modules that require protractor}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22430}{}\doxysubsection{Bug Fix}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22430}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/6e029341a67cd985bf727285dec2ef10aafe7b6a}{\texttt{ 6e02934}}) fix(package)\+: Update module main in package.\+json to use built.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22431}{}\doxysection{3.\+2.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22431}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22432}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22432}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/cae175cbe632828172e9a7065aacfe67dd51d8dd}{\texttt{ cae175c}}) feat(plugins) Calculate skip\+Angular\+Stability dynamically.

This allows plugins to turn Protractor\textquotesingle{}s default synchronization on and off as needed.
\item (\href{https://github.com/angular/protractor/commit/7372267f23cc8586409f9ef914ab801c78992ccd}{\texttt{ 7372267}}) feat(webdriver)\+: add support for custom versions for selenium, chrome driver, and ie driver
\item (\href{https://github.com/angular/protractor/commit/1cbbe4fef5c5f2bc0923fd54c53afad71a44af6c}{\texttt{ 1cbbe4f}}) feat(config)\+: no globals option
\item (\href{https://github.com/angular/protractor/commit/960820120cf7df08cff8cfe15a5a9f08612c9773}{\texttt{ 9608201}}) feat(typescript)\+: adding typescript to protractor

Converting a 3 files over to typescript.

Adding an {\ttfamily npm prepublish} step that will use gulp to download the typings, transpile the files with tscto the built/ directory and copy the rest of the javascript files from lib/ to the built/ folder.

Also adding scripts to package.\+json for {\ttfamily npm run tsc} and {\ttfamily npm run tsc\+:w} for transpiling help.
\item (\href{https://github.com/angular/protractor/commit/a4a72095d2f95227f1ba293ae047beab28eb761d}{\texttt{ a4a7209}}) feat(plugins)\+: skip\+Angular\+Stability
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22433}{}\doxysubsection{Dependency Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22433}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/29627f42bb7404f66e3a76ba3cbd85256b408fb6}{\texttt{ 29627f4}}) chore(selenium) -\/ upgrade to selenium webdriver v 2.\+52.\+0

See the full changelog at \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md\#v2520}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/\+CHANGES.\+md\#v2520}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22434}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22434}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a2c7a4bf1fb2a3a509040ae8ec7737cc002b764e}{\texttt{ a2c7a4b}}) fix(config)\+: Do not sort spec keys

Fixes \#2928
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22435}{}\doxysection{3.\+1.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22435}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22436}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22436}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/4db52f2a21171ebbc6fed0ca3df760553afc264a}{\texttt{ 4db52f2}}) test(config)\+: add test for config files using only per-\/capability specs

To prevent bugs like \#2925 in the future.
\item (\href{https://github.com/angular/protractor/commit/edfb52fadccf10c34d885c37e990dea0efbb0081}{\texttt{ edfb52f}}) fix(config\+Parser)\+: use all the suites if no other spec sources are provided
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22437}{}\doxysection{3.\+1.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22437}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22438}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22438}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f699718e951c07f18c2e3e5414f92b9a33f7b19c}{\texttt{ f699718}}) updates(selenium)\+: update chromedriver and selenium-\/standalone

Selenium-\/standalone update to 2.\+51.\+0. Update chromedriver to 2.\+21.

Chromedriver changelog\+: \href{http://chromedriver.storage.googleapis.com/2.21/notes.txt}{\texttt{ http\+://chromedriver.\+storage.\+googleapis.\+com/2.\+21/notes.\+txt}} Selenium changelog\+: \href{https://github.com/SeleniumHQ/selenium/blob/master/dotnet/CHANGELOG}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/dotnet/\+CHANGELOG}}
\item (\href{https://github.com/angular/protractor/commit/5930d1444aef2f053c132eb437d07f9b000d7803}{\texttt{ 5930d14}}) chore(deps)\+: update various npm dependencies to latest stable releases
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22439}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22439}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/3f3805f9496fb130ae01b3e3278ee1ea7684d8e7}{\texttt{ 3f3805f}}) feat(attach\+Session)\+: attach protractor to existing webdriver session

Attaching an existing selenium browser session to protractor rather than always creating new one. The session can be passed into the config file as a string via the session\+Id.
\item (\href{https://github.com/angular/protractor/commit/b6932560d66730203e0e7b0c65c80a44ad4747de}{\texttt{ b693256}}) feat(webdriver)\+: allow configuration of all Selenium\+Server arguments

You can now pass a complete object of configuration for the Selenium\+Server class. This allows enabling loopback on the selenium server.
\item (\href{https://github.com/angular/protractor/commit/148f020bf4bbd71e17326581a2f7ed6f4ff55832}{\texttt{ 148f020}}) feat(protractor)\+: Add support to allow Protractor to test an Angular application which has debugging info disabled

Currently Angular application which for performance reasons, have debug information turn off cannot be tested. This PR allows users to add the Angular debug logging flag to the Protractor run.
\item (\href{https://github.com/angular/protractor/commit/aa5ceb576f0283b6591faaa95e342ef3c603c717}{\texttt{ aa5ceb5}}) feat(webdriver)\+: add support for selenium webdriver proxy
\item (\href{https://github.com/angular/protractor/commit/b110ed92442eb8b14768c512a890bb3ceb0e4973}{\texttt{ b110ed9}}) feat(debugger)\+: allow multiple browser.\+pause()

After this change, you can put multiple browser.\+pause() in the code. Each browser.\+pause() is like a traditional breakpoint.

To detach from the debugger, press $^\wedge$D (CTRL+D). This will continue code execution until it hits the next browser.\+pause() or code finishes running.

This PR also fixes a number of small formatting issues.
\item (\href{https://github.com/angular/protractor/commit/fb10c5caffb895e909ad91d629e2192c74c8e064}{\texttt{ fb10c5c}}) feat(webdriver)\+: Allow users to use webdriver\textquotesingle{}s disable\+Environment\+Overrides

Fixes \#2300
\item (\href{https://github.com/angular/protractor/commit/fa0c692414fa98721dff80202ef95e9b3ccadebb}{\texttt{ fa0c692}}) feat(config)\+: allow on\+Complete to return a promise

Closes \#1944
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22440}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22440}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f533341085921409d16d577e38ba1745c37a17b7}{\texttt{ f533341}}) bug(driver\+Provider)\+: fix driver path generation for $\ast$nix platforms

Makes error messages better
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22441}{}\doxysection{3.\+0.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22441}
{\itshape We\textquotesingle{}re releasing version 3.\+0 with some breaking changes. In summary -\/ Jasmine 1.\+3 is removed, only Jasmine 2 is now supported, old Node.\+JS support is dropped, and plugins now need to be explicitly required. Full details below.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22442}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22442}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/18e1f71a4dd868709f4e259e05a8a196921e22be}{\texttt{ 18e1f71}}) chore(webdriver)\+: upgrade Protractor to webdriver 2.\+48.\+2
\item (\href{https://github.com/angular/protractor/commit/1f44a6ef3f7ae8680a03a3cc7a7c06f75a8c7d4c}{\texttt{ 1f44a6e}}) chore(deps)\+: bump chromedriver and iedriver versions IEDriver from 2.\+47.\+0 to 2.\+48.\+0

Chrome\+Driver from 2.\+19 to 2.\+20. Changelog\+: \href{http://chromedriver.storage.googleapis.com/2.20/notes.txt}{\texttt{ http\+://chromedriver.\+storage.\+googleapis.\+com/2.\+20/notes.\+txt}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22443}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22443}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/97e6703eb0e7a5dffc1017d0a44f0dfeeb91f327}{\texttt{ 97e6703}}) feat(protractor)\+: Add protractor.\+prototype.\+restart
\item (\href{https://github.com/angular/protractor/commit/2007f06078b6569a2cfd9f361f17d765c07bc7f8}{\texttt{ 2007f06}}) feat(protractor)\+: add flag to stop protractor from tracking \$timeout
\item (\href{https://github.com/angular/protractor/commit/a40a4ba2a509bc762f1f5937454fdbf074405f07}{\texttt{ a40a4ba}}) feat(Element\+Array\+Finder\+::get)\+: Implemented ability to pass promise as index to Element\+Array\+Finder\+::get
\item (\href{https://github.com/angular/protractor/commit/a54c0e0d72b9d7d1d8364ade5046e5007ff53906}{\texttt{ a54c0e0}}) feat(plugins)\+: Add config option to disable logging of warnings in console plugin

Running tests in multiple browsers ends up printing out a lot of useless warnings I\textquotesingle{}m already aware of. To make skimming through logs in the case of an actual failure easier, I want to be able to disable the logging of warnings in the console plugin.
\item (\href{https://github.com/angular/protractor/commit/7015010188dfb70c1e49e4f2eae19d5ba1126b34}{\texttt{ 7015010}}) feat(driver providers)\+: Add Browser\+Stack support.

Also added Browser\+Stack to CI
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22444}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22444}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/7cba4ecf0f3915dfec33dbc04decd42857744b37}{\texttt{ 7cba4ec}}) fix(ng-\/repeat)\+: properly detect the end of an ng-\/repeat-\/start block

Discovered while investigating issue \#2365
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22445}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22445}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2bde92b3e745e09ad3876932b2d187365e9aaa31}{\texttt{ 2bde92b}}) chore(jasmine)\+: remove jasmine 1.\+3

and update docs. Also, use jasmine 2 for running all Protractor\textquotesingle{}s unit tests.

BREAKING CHANGE\+: Now, both jasmine and jasmine2 frameworks use jasmine 2.\+3. Users still using jasmine version $<$2 will have to upgrade.
\item (\mbox{[}18e1f71\mbox{]}(\href{https://github.com/angular/protractor/commit/18e1f71a4dd868709f4e259e05a8a196921e22be}{\texttt{ https\+://github.\+com/angular/protractor/commit/18e1f71a4dd868709f4e259e05a8a196921e22be}})) chore(webdriver)\+: upgrade Protractor to webdriver 2.\+48.\+2

BREAKING CHANGE\+: 1) Users will no longer be able to use node versions $<$4. 2) There is significant changes to the control flow, and tests may need to be modified to be compliant with the new control flow. See \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/\+CHANGES.\+md}}
\item (\mbox{[}ac1e21e\mbox{]}(\href{https://github.com/angular/protractor/commit/ac1e21e7e09a773de981bf9e70b0fcd489d17a83}{\texttt{ https\+://github.\+com/angular/protractor/commit/ac1e21e7e09a773de981bf9e70b0fcd489d17a83}})) chore(plugins)\+: Split first party plugins into seperate repos

BREAKING CHANGE\+:

The Accessibility, Ng\+Hint, Timeline, and Console plugins are now located in their own separate node modules. You will need to explicitly require each module you use. See \href{https://github.com/angular/protractor/blob/master/docs/plugins.md\#first-party-plugins}{\texttt{ https\+://github.\+com/angular/protractor/blob/master/docs/plugins.\+md\#first-\/party-\/plugins}} for info for each module.
\item (\mbox{[}ddb8584\mbox{]}(\href{https://github.com/angular/protractor/commit/ddb8584a59343284904676ef6d8db5c1c996b900}{\texttt{ https\+://github.\+com/angular/protractor/commit/ddb8584a59343284904676ef6d8db5c1c996b900}})) chore(cucumber)\+: Remove cucumber from internal implementation

BREAKING CHANGE\+:

Cucumber has been community maintained for a while, and in order to allow it to move faster, it is no longer part of the core Protractor library. It is now published on npm under \`{}protractor-\/cucumber-\/framework\`{} and will require setting \`{}framework\+Path\`{} in your configuration file. See \href{https://github.com/angular/protractor/blob/master/docs/frameworks.md\#using-cucumber}{\texttt{ https\+://github.\+com/angular/protractor/blob/master/docs/frameworks.\+md\#using-\/cucumber}} for full instructions on use now.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22446}{}\doxysection{2.\+5.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22446}
\+\_\+\+This release is a hotfix for node 0.\+10 support\+\_\+


\begin{DoxyItemize}
\item (\mbox{[}039ffa7\mbox{]}(\href{https://github.com/angular/protractor/commit/039ffa7bfa291084263ae3fa944bbf21394ce9a3}{\texttt{ https\+://github.\+com/angular/protractor/commit/039ffa7bfa291084263ae3fa944bbf21394ce9a3}})) fix(config\+Parser)\+: Remove path.\+parse so protractor works with node $<$ v0.\+12

Closes \#2588
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22447}{}\doxysection{2.\+5.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22447}
\+\_\+\+This release contains a hotfix for windows path issues and early support for Angular2 apps\+\_\+\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22448}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22448}

\begin{DoxyItemize}
\item (\mbox{[}c5d37c2\mbox{]}(\href{https://github.com/angular/protractor/commit/c5d37c2abebf9aa9dd3324df93ac447529eea53b}{\texttt{ https\+://github.\+com/angular/protractor/commit/c5d37c2abebf9aa9dd3324df93ac447529eea53b}})) feat(lib)\+: add use\+All\+Angular\+App\+Roots option

This allows waiting for all angular applications on the page, for angular2 apps only.
\item (\mbox{[}f246880\mbox{]}(\href{https://github.com/angular/protractor/commit/f24688030a63c9de4ce759ac9c6fab79ef773ed5}{\texttt{ https\+://github.\+com/angular/protractor/commit/f24688030a63c9de4ce759ac9c6fab79ef773ed5}})) feat(lib)\+: add support for waiting for angular2

Use Angular2\textquotesingle{}s testability API, if present, when waiting for stability or loading a page.

Closes \#2396
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22449}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22449}

\begin{DoxyItemize}
\item (\mbox{[}d6aebba\mbox{]}(\href{https://github.com/angular/protractor/commit/d6aebbad6e9b191fef141472887637ee4318438e}{\texttt{ https\+://github.\+com/angular/protractor/commit/d6aebbad6e9b191fef141472887637ee4318438e}})) fix(config)\+: Fixes absolute path parsing in windows

This allows absolute paths absolute paths in to be properly parsed in windows. This should maintain the line-\/number feature introduced in ff88e without breakage.
\item (\mbox{[}04e5bfb\mbox{]}(\href{https://github.com/angular/protractor/commit/04e5bfbfcade0cbbef58213bc7b227b5db753d57}{\texttt{ https\+://github.\+com/angular/protractor/commit/04e5bfbfcade0cbbef58213bc7b227b5db753d57}})) chore(runner)\+: make plugins optional param for create\+Browser
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22450}{}\doxysection{2.\+4.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22450}
\+\_\+\+This release contains only a version update to \`{}selenium-\/webdriver\`{}, webdriver javascript bindings, and associated bug fixes.\+\_\+\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22451}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22451}

\begin{DoxyItemize}
\item (\mbox{[}9a202ab\mbox{]}(\href{https://github.com/angular/protractor/commit/9a202ab5573f24c9919639f1b75fd9cd2b383383}{\texttt{ https\+://github.\+com/angular/protractor/commit/9a202ab5573f24c9919639f1b75fd9cd2b383383}})) chore(dependencies)\+: update selenium-\/webdriver to 2.\+47.\+0

Along with it, update \`{}jasminewd2\`{} to avoid situations where the control flow gets locked up and hangs.

$\ast$\+Potential Breaking Change$\ast$\+:

This is passing all existing Protractor tests, but there is a possibility that the changes to the control flow will cause some test flows to hang. If this causes issues, such as tests hanging or commands executing out of order, please revisit your use of functions affecting the control flow, such as \`{}flow.execute\`{}.

See the selenium-\/webdriver changelog at \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/\+CHANGES.\+md}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22452}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22452}

\begin{DoxyItemize}
\item (\mbox{[}f034e01\mbox{]}(\href{https://github.com/angular/protractor/commit/f034e010156a85cf1826b95eb7f41f50ef5a1791}{\texttt{ https\+://github.\+com/angular/protractor/commit/f034e010156a85cf1826b95eb7f41f50ef5a1791}})) fix(synchronizing)\+: use the same control flow when ignoring sync

Previously, the order of frames and tasks on the control flow was different depending on \`{}browser.ignore\+Synchronization\`{}. This fixes the inconsistency by creating an empty task when ignore\+Synchronization is true.

Practically, this fixes the polling spec failing after the update to \href{mailto:selenium-webdriver@2.47}{\texttt{ selenium-\/webdriver@2.\+47}}.0.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22453}{}\doxysection{2.\+3.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22453}
\+\_\+\+This release contains updates which fix some issues with dependencies that had gotten stale. However, it does not yet contain an update to the selenium-\/webdriver dependency, because of potential breaking changes. That update will be done in a separate Protractor@2.\+4.\+0 release. See \mbox{[}issue 2245\mbox{]}(\href{https://github.com/angular/protractor/issues/2245}{\texttt{ https\+://github.\+com/angular/protractor/issues/2245}}).\+\_\+\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22454}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22454}

\begin{DoxyItemize}
\item (\mbox{[}cfd8d00\mbox{]}(\href{https://github.com/angular/protractor/commit/cfd8d000c2aa1686c4a90164baf4e04976ee0587}{\texttt{ https\+://github.\+com/angular/protractor/commit/cfd8d000c2aa1686c4a90164baf4e04976ee0587}})) feat(webdriver)\+: update webdriver and chromedriver to latest version

Updating Selenium standalone from 2.\+45.\+0 to 2.\+47.\+0 Updating Chrome\+Driver from 2.\+15 to 2.\+19 Selenium Changelog\+: \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/\+CHANGES.\+md}} Chrome\+Driver Changelog\+: \href{http://chromedriver.storage.googleapis.com/2.19/notes.txt}{\texttt{ http\+://chromedriver.\+storage.\+googleapis.\+com/2.\+19/notes.\+txt}}
\item (\mbox{[}802b20f\mbox{]}(\href{https://github.com/angular/protractor/commit/802b20f153f2c201d8b37378bf8feb93f649a95f}{\texttt{ https\+://github.\+com/angular/protractor/commit/802b20f153f2c201d8b37378bf8feb93f649a95f}})) chore(selenium)\+: update selenium from 2.\+47.\+0 to 2.\+47.\+1
\item (\mbox{[}7a7aca8\mbox{]}(\href{https://github.com/angular/protractor/commit/7a7aca8a264ae07cbbb90e7e7469533a52276488}{\texttt{ https\+://github.\+com/angular/protractor/commit/7a7aca8a264ae07cbbb90e7e7469533a52276488}})) chore(jasmine)\+: bump jasmine version from 2.\+3.\+1 to 2.\+3.\+2
\item (\mbox{[}eab828e\mbox{]}(\href{https://github.com/angular/protractor/commit/eab828e12c671cbf5cdf9b09df050cc59f0dd862}{\texttt{ https\+://github.\+com/angular/protractor/commit/eab828e12c671cbf5cdf9b09df050cc59f0dd862}})) chore(travis)\+: test against node 4

Test against node 4 on Travis, and remove support for node 0.\+10.
\item (\mbox{[}96def81\mbox{]}(\href{https://github.com/angular/protractor/commit/96def81dc7d364e789fc290e97aee0f898648a10}{\texttt{ https\+://github.\+com/angular/protractor/commit/96def81dc7d364e789fc290e97aee0f898648a10}})) chore(saucelabs)\+: updated saucelabs dependency to 1.\+0.\+1 to support proxy
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22455}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22455}

\begin{DoxyItemize}
\item (\mbox{[}c989a7e\mbox{]}(\href{https://github.com/angular/protractor/commit/c989a7eeed5a0a55d2fbd37dc7278a7967889852}{\texttt{ https\+://github.\+com/angular/protractor/commit/c989a7eeed5a0a55d2fbd37dc7278a7967889852}})) feat(webdriver-\/manager)\+: add -\/-\/ie32 commandline option

The new option allows to download the 32-\/bit version of the IE driver on a 64-\/bit system, as the 64-\/bit version has been broken for over a year now (the send\+Keys() function works very slowly on it).
\item (\mbox{[}ff88e96\mbox{]}(\href{https://github.com/angular/protractor/commit/ff88e969d55585cc4267d75c12c0cafc78a01895}{\texttt{ https\+://github.\+com/angular/protractor/commit/ff88e969d55585cc4267d75c12c0cafc78a01895}})) feat(cucumber)\+: Allow cucumber tests containing line numbers

example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{specs: [}
\DoxyCodeLine{   'cucumber/lib.feature:7'}
\DoxyCodeLine{ ]}

\end{DoxyCode}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22456}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22456}

\begin{DoxyItemize}
\item (\mbox{[}1487e5a\mbox{]}(\href{https://github.com/angular/protractor/commit/1487e5abf69bc1540226502aacadc8b3b42b0092}{\texttt{ https\+://github.\+com/angular/protractor/commit/1487e5abf69bc1540226502aacadc8b3b42b0092}})) fix(protractor.\+wrap\+Driver)\+: allow browser instances to work even if they were not set up through the runner

Fixes \#2456
\item (\mbox{[}2ff7a07\mbox{]}(\href{https://github.com/angular/protractor/commit/2ff7a0771b6695dc49566ed81548b3fe2cebf11c}{\texttt{ https\+://github.\+com/angular/protractor/commit/2ff7a0771b6695dc49566ed81548b3fe2cebf11c}})) fix(\+Chrome Accessibility Plugin)\+: resolving the location of AUDIT\+\_\+\+FILE
\item (\mbox{[}f9b0a92\mbox{]}(\href{https://github.com/angular/protractor/commit/f9b0a92079b55384d4560fef9400bb473672ce9c}{\texttt{ https\+://github.\+com/angular/protractor/commit/f9b0a92079b55384d4560fef9400bb473672ce9c}})) fix(debugger)\+: Fix potential debugger lockups
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22457}{}\doxysection{2.\+2.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22457}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22458}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22458}

\begin{DoxyItemize}
\item If you use the plugin API, it has changed a lot. See \mbox{[}\`{}docs/plugins.md\`{}\mbox{]}(docs/plugins.\+md) for details. The good news is that it is being taken out of beta, so it should be more stable in the future.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22459}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22459}

\begin{DoxyItemize}
\item (\mbox{[}786ab05\mbox{]}(\href{https://github.com/angular/protractor/commit/786ab0541bff9b561b35dbbf0ffc1e9d4a788d10}{\texttt{ https\+://github.\+com/angular/protractor/commit/786ab0541bff9b561b35dbbf0ffc1e9d4a788d10}})) chore(dependencies)\+: update request to 2.\+57

Closes \#2205
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22460}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22460}

\begin{DoxyItemize}
\item (\mbox{[}f2a11a7\mbox{]}(\href{https://github.com/angular/protractor/commit/f2a11a7369319edac0f1221a1c6ab0f9a2cc73eb}{\texttt{ https\+://github.\+com/angular/protractor/commit/f2a11a7369319edac0f1221a1c6ab0f9a2cc73eb}})) feat(plugins)\+: Changed and expanded the plugin API
\begin{DoxyItemize}
\item Changed the plugin API so that it is more uniform (see docs/plugins.\+md)
\item Updated existing plugins to the new API
\item Added the \`{}on\+Page\+Load\`{} and \`{}on\+Page\+Sync\`{} entry points for plugins for modifying \`{}browser.get\`{}
\item Added the \`{}wait\+For\+Promise\`{} and \`{}wait\+For\+Condition\`{} entry points for plugins for modifying \`{}wait\+For\+Angular\`{}
\item Added tests
\end{DoxyItemize}

This closes \#2126 and helps out @andresdominguez
\item (\mbox{[}aded26b\mbox{]}(\href{https://github.com/angular/protractor/commit/aded26bc9ee6172d6f64361207f6a8b04da09b0d}{\texttt{ https\+://github.\+com/angular/protractor/commit/aded26bc9ee6172d6f64361207f6a8b04da09b0d}})) feat(webdriver-\/manager)\+: update download logic with streaming

Also adds a content length check to make sure the downloaded binaries are the correct size. This seems to fix up some unreliable download issues that we were previously having.
\item (\mbox{[}7aeebd6\mbox{]}(\href{https://github.com/angular/protractor/commit/7aeebd6543d89b7d8b9474bc45651b88c5c2d396}{\texttt{ https\+://github.\+com/angular/protractor/commit/7aeebd6543d89b7d8b9474bc45651b88c5c2d396}})) feat(plugins)\+: reporting loaded plugins
\item (\mbox{[}6c10378\mbox{]}(\href{https://github.com/angular/protractor/commit/6c10378b9a4e7cae9ba491a63ae11f942c833100}{\texttt{ https\+://github.\+com/angular/protractor/commit/6c10378b9a4e7cae9ba491a63ae11f942c833100}})) feat(protractor)\+: expose pending \$http and \$timeout on a timeout

Now when a test times out while waiting for Angular to be stable, pending \$timeout and \$http tasks will be reported to the console.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22461}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22461}

\begin{DoxyItemize}
\item (\mbox{[}c30afdd\mbox{]}(\href{https://github.com/angular/protractor/commit/c30afddb80b6138fc5f648f70f2891067d8eeef4}{\texttt{ https\+://github.\+com/angular/protractor/commit/c30afddb80b6138fc5f648f70f2891067d8eeef4}})) fix(test)\+: fixed tests under npm test
\item (\mbox{[}3508335\mbox{]}(\href{https://github.com/angular/protractor/commit/3508335199fee5dad74c66d9ee19b8bf448c2e62}{\texttt{ https\+://github.\+com/angular/protractor/commit/3508335199fee5dad74c66d9ee19b8bf448c2e62}})) fix(element)\+: Element\+Array\+Finder.\+count was slow

The bug fix for \#1903 (\href{https://github.com/angular/protractor/commit/2a765c76e121de13ff86a279fe3f21cb15c17783}{\texttt{ https\+://github.\+com/angular/protractor/commit/2a765c76e121de13ff86a279fe3f21cb15c17783}}) was causing Element\+Array\+Finder.\+prototype.\+count to be slow because of the extranous checks that must be performed. However, the checks could be delayed into the is\+Present check, which will mitigate this issue

fixes(\#2359)
\item (\mbox{[}b147033\mbox{]}(\href{https://github.com/angular/protractor/commit/b14703319c0d6bb6a69b76d0fd3732e2ea1fbebc}{\texttt{ https\+://github.\+com/angular/protractor/commit/b14703319c0d6bb6a69b76d0fd3732e2ea1fbebc}})) fix(by.\+exact\+Repeater)\+: should split by \char`\"{}=\char`\"{}

Closes \#2335
\item (\mbox{[}4c9886b\mbox{]}(\href{https://github.com/angular/protractor/commit/4c9886b410ea4d82098af322044a37908a112138}{\texttt{ https\+://github.\+com/angular/protractor/commit/4c9886b410ea4d82098af322044a37908a112138}})) fix(\+Chrome Accessibility Plugin) No error context

If your tests fail because of Stale\+Element\+Reference\+Error then there is no context about where this is coming from. By having the failure be handled inside of the plugin then grunt can fail gracefully. Additionally, this provides context about where the error originated from.

Fixes \#2331
\item (\mbox{[}d15ccdc\mbox{]}(\href{https://github.com/angular/protractor/commit/d15ccdcf82bda29c803c3a5642896f16d7e4f938}{\texttt{ https\+://github.\+com/angular/protractor/commit/d15ccdcf82bda29c803c3a5642896f16d7e4f938}})) fix(phantom\+JS)\+: Reset URL cannot be a data url for Phantom\+JS

When trying to use the lates version of Angular with Phantom\+JS we get a message complaining about \char`\"{}\+Detected a page unload event\char`\"{}. This was fixed in earlier versions of Angular, see issue \#85, but reappeared now. The problem is that using data urls to reset the page causes this issue, so we have to do as we do with Safari and use \char`\"{}about\+:blank\char`\"{} instead
\item (\mbox{[}e6369ac\mbox{]}(\href{https://github.com/angular/protractor/commit/e6369ac973d58a17415ab1211050af26236c6105}{\texttt{ https\+://github.\+com/angular/protractor/commit/e6369ac973d58a17415ab1211050af26236c6105}})) docs(tutorial)\+: use Jasmine v2 in the tutorial
\item (\mbox{[}e60dc0f\mbox{]}(\href{https://github.com/angular/protractor/commit/e60dc0ff4fc4a6d22e877d4182605913fae5d5cb}{\texttt{ https\+://github.\+com/angular/protractor/commit/e60dc0ff4fc4a6d22e877d4182605913fae5d5cb}})) fix(browser.\+refresh)\+: use timeout in milliseconds

When invoked without arguments browser.\+refresh used a 10-\/millisecond timeout, wrongly documented as seconds. It now delegates timeout handling to browser.\+get, which defaults to DEFAULT\+\_\+\+GET\+\_\+\+PAGE\+\_\+\+TIMEOUT (10 seconds).
\item (\mbox{[}0262268\mbox{]}(\href{https://github.com/angular/protractor/commit/0262268fa43b9eefac815d986740efa07bb15818}{\texttt{ https\+://github.\+com/angular/protractor/commit/0262268fa43b9eefac815d986740efa07bb15818}})) fix(cucumber)\+: fix before\+Feature event handler call guard

Fixes the run failures reported in \href{https://github.com/cucumber/cucumber-js/issues/342}{\texttt{ https\+://github.\+com/cucumber/cucumber-\/js/issues/342}}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22462}{}\doxysection{2.\+1.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22462}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22463}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22463}

\begin{DoxyItemize}
\item (\mbox{[}25b1fa0\mbox{]}(\href{https://github.com/angular/protractor/commit/25b1fa052c195f6f56adcd3f5a116cb5eac238b0}{\texttt{ https\+://github.\+com/angular/protractor/commit/25b1fa052c195f6f56adcd3f5a116cb5eac238b0}})) feat(jasmine)\+: update jasmine dependency to 2.\+3.\+1

Updated from 2.\+1.\+1. See Jasmine\textquotesingle{}s changelog at \href{https://github.com/jasmine/jasmine/tree/master/release_notes}{\texttt{ https\+://github.\+com/jasmine/jasmine/tree/master/release\+\_\+notes}}

Closes \#1795. Closes \#2094. Closes \#1768.
\item (\mbox{[}25e3b86\mbox{]}(\href{https://github.com/angular/protractor/commit/25e3b8611f7333f0829aa3c315a0397891bbada7}{\texttt{ https\+://github.\+com/angular/protractor/commit/25e3b8611f7333f0829aa3c315a0397891bbada7}})) chore(chromedrivier)\+: Update chromedriver to 2.\+15
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22464}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22464}

\begin{DoxyItemize}
\item (\mbox{[}45341c9\mbox{]}(\href{https://github.com/angular/protractor/commit/45341c944bf60537849776c7f362ee0442b219e6}{\texttt{ https\+://github.\+com/angular/protractor/commit/45341c944bf60537849776c7f362ee0442b219e6}})) feat(explorer)\+: allow element explorer to start as a server

If element explorer is run with a port (i.\+e. -\/-\/debugger\+Server\+Port 1234), it will start up a server that listens to command from the port instead of a repl that listens to process.\+stdin.
\item (\mbox{[}cf9a26f\mbox{]}(\href{https://github.com/angular/protractor/commit/cf9a26f1b4bdca7d928794d24738786be074619a}{\texttt{ https\+://github.\+com/angular/protractor/commit/cf9a26f1b4bdca7d928794d24738786be074619a}})) feat(plugins)\+: allow plugins.\+post\+Test to know what test just ran
\item (\mbox{[}0f80696\mbox{]}(\href{https://github.com/angular/protractor/commit/0f806964324cbeb4bceb54c5bd82c639b9f99a49}{\texttt{ https\+://github.\+com/angular/protractor/commit/0f806964324cbeb4bceb54c5bd82c639b9f99a49}})) feat(plugins)\+: inline plugins
\item (\mbox{[}de49969\mbox{]}(\href{https://github.com/angular/protractor/commit/de499696eb88721cb073a195025ae48f59cbc905}{\texttt{ https\+://github.\+com/angular/protractor/commit/de499696eb88721cb073a195025ae48f59cbc905}})) feat(debugger)\+: make element explorer work with node 0.\+12.\+0

Node has changed its debugger significantly in 0.\+12.\+0, and these changes are necessary to get it to work now.

Specifically here are the key points to take note\+:
\begin{DoxyItemize}
\item Before, the process continues running after \`{}process.\+\_\+debug\+Process(pid);\`{} is called, but now, the process stops. \begin{quote}
To over come this, the call to {\ttfamily process.\+\_\+debug\+Process(pid)} is moved from protractor into the \end{quote}
debugger client. Secondly, because the process stops after the call, we call {\ttfamily req\+Continue} once the debugger connection is established, so that protractor continues into the first break point (for backwards compatibility, we added an extra empty webdriver command so that in earlier versions of node, protractor doesn\textquotesingle{}t go past the first break point from the req\+Continue).
\item Before repl provides \textquotesingle{}(foobar~\newline
)\textquotesingle{} when an user inputs \textquotesingle{}foobar\textquotesingle{}. Now it is just \textquotesingle{}foobar~\newline
\textquotesingle{}. \begin{quote}
We will parse and strip away both the parenthesis and \textquotesingle{}~\newline
\textquotesingle{} to support all versions of node. \end{quote}

\item Additionally (non-\/related to node 0.\+12.\+0), this change makes debugger processes fail fast if the port is taken.
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/7b96db0ffb06608b12aa14765133cce42a0cad7f}{\texttt{ 7b96db0}}) feat(browser.\+get)\+: Return a promise that handles errors in browser.\+get
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22465}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22465}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/815ff5d092c8dda88e2a1d4c5c80f66bf20892fa}{\texttt{ 815ff5d}}) fix(jasmine2)\+: be consistent about passing assertions in output JSON

See \#2051
\item (\href{https://github.com/angular/protractor/commit/e6e668c8d7353c8e797f730b30b996c6a6eb770f}{\texttt{ e6e668c}}) chore(jasmine)\+: update jasminewd2 to 0.\+0.\+4

This improves the control flow schedule messages for debugging and fixes an issue with the {\ttfamily this} variable inside tests. See \href{https://github.com/angular/jasminewd/issues/22}{\texttt{ https\+://github.\+com/angular/jasminewd/issues/22}}
\item (\href{https://github.com/angular/protractor/commit/e599cf301d1ff0fe705b2362fa6b4b17859ab8da}{\texttt{ e599cf3}}) fix(taskscheduler)\+: label sharded tasks with numbers instead of letters

Letters run into a problem with a maximum of 26. See \#2042
\item (\href{https://github.com/angular/protractor/commit/fda323664db65a5c8f1590b9841fcfa53d4ab8fd}{\texttt{ fda3236}}) fix(config)\+: add sauce\+Agent property to protractor config

Closes \#2040
\item (\href{https://github.com/angular/protractor/commit/fa699b8f1a6b807f2405d6829609797a9a3f8768}{\texttt{ fa699b8}}) fix(debugger)\+: fix \textquotesingle{}get\+Control\+Flow\+Text()\textquotesingle{} broken in webdriver 2.\+45
\item (\href{https://github.com/angular/protractor/commit/b783dd865dfd16e5099a863d36d497499026b208}{\texttt{ b783dd8}}) fix(browser)\+: remove subsequent duplicate module

browser.\+remove\+Mock\+Module() misses next duplicate module because of iteration over an array it\textquotesingle{}s modifying.
\item (\href{https://github.com/angular/protractor/commit/e3d4ad164a04451fce3a57f06121355343c97f48}{\texttt{ e3d4ad1}}) fix(stacktrace)\+: remove jasmine2 specific stacktraces
\item (\href{https://github.com/angular/protractor/commit/3cded9b8da247dc69c78a6fa0e25fe70f6c0f801}{\texttt{ 3cded9b}}) fix(locators)\+: escape query in by\+Exact\+Binding

See \href{http://stackoverflow.com/q/3561711}{\texttt{ http\+://stackoverflow.\+com/q/3561711}}

Closes \#1918
\item (\href{https://github.com/angular/protractor/commit/e18d4990878d70f77b29e8678eecbaab7c8cefb5}{\texttt{ e18d499}}) fix(cucumber)\+: process no-\/snippets param for cucumber framework
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22466}{}\doxysection{2.\+0.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22466}
{\itshape Why is this change version 2.\+0? Protractor is following semver, and there\textquotesingle{}s some breaking changes here.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22467}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22467}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/34f0eebd7e73b10e9b990caa06b63b6fd22b2589}{\texttt{ 34f0eeb}}) fix(element)\+: update to \href{mailto:selenium-webdriver@2.45}{\texttt{ selenium-\/webdriver@2.\+45}}.1 and remove element.\+then

This change updates the version of Web\+Driver\+JS (selenium-\/webdriver node module) from 2.\+44 to 2.\+45.\+1. See the full changelog at \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/\+CHANGES.\+md}}
\item (\href{https://github.com/angular/protractor/commit/8976e75dc1817817e6bd2dbb0b6cbc78d72035e9}{\texttt{ 8976e75}}) chore(jasmine)\+: bump version of jasminewd2
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22468}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22468}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/997937d189fb3a9fb51f1b2e4756981c8958ceba}{\texttt{ 997937d}}) feat(console plugin)\+: Added new console plugin
\item (\href{https://github.com/angular/protractor/commit/ef6a09d798fd04124224f6ca48eb64d13eb01eff}{\texttt{ ef6a09d}}) feat(webdriver-\/manager)\+: allow a custom cdn for binaries

Added a cdn value for each binary to be overrided by the cli argument {\ttfamily alternate\+\_\+cdn}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22469}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22469}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/fb92be6d588e7302989bd171a064739359bb3c74}{\texttt{ fb92be6}}) fix(accessibility)\+: improve output for long elements

Instead of just printing the first N characters of the element\textquotesingle{}s template, print the first and last N/2.

See \#1854
\item (\href{https://github.com/angular/protractor/commit/2a765c76e121de13ff86a279fe3f21cb15c17783}{\texttt{ 2a765c7}}) fix(element)\+: return not present when an element disappears
\item (\href{https://github.com/angular/protractor/commit/8a3412e98614bb69978869b34b5b7243619f015d}{\texttt{ 8a3412e}}) fix(bug)\+: by.\+button\+Text() should not be effected by CSS style

Closes issue \#1904
\item (\href{https://github.com/angular/protractor/commit/5d232807f1e32a9a3ba5a5e4f07ace5d535fc3cd}{\texttt{ 5d23280}}) fix(debugger)\+: fix issue where output does not display circular dep and functions
\item (\href{https://github.com/angular/protractor/commit/ef0fbc096035bb01d136897ca463892ceca56b73}{\texttt{ ef0fbc0}}) fix(debugger)\+: expose require into debugger
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22470}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22470}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/34f0eebd7e73b10e9b990caa06b63b6fd22b2589}{\texttt{ 34f0eeb}}) fix(element)\+: update to \href{mailto:selenium-webdriver@2.45}{\texttt{ selenium-\/webdriver@2.\+45}}.1 and remove element.\+then

This change updates the version of Web\+Driver\+JS (selenium-\/webdriver node module) from 2.\+44 to 2.\+45.\+1. See the full changelog at \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/\+CHANGES.\+md}}

To enable the update and remove confusion, this removes the {\ttfamily element().then} function unless there is an action result. This function is completely unnecessary, because it would always resolve to itself, but the removal may cause breaking changes.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{element(by.css('foo')).then(function(el) \{}
\DoxyCodeLine{  return el.getText().then(...);}
\DoxyCodeLine{\});}

\end{DoxyCode}


After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{element(by.css('foo')).getText().then(...);}

\end{DoxyCode}


In other words, an Element\+Finder is now no longer a promise until an action has been called.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{var el = element(by.css('foo'));}
\DoxyCodeLine{}
\DoxyCodeLine{protractor.promise.isPromise(el); // true}
\DoxyCodeLine{protractor.promise.isPromise(el.click()); // true}

\end{DoxyCode}


After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{var el = element(by.css('foo'));}
\DoxyCodeLine{}
\DoxyCodeLine{protractor.promise.isPromise(el); // false}
\DoxyCodeLine{protractor.promise.isPromise(el.click()); // true}

\end{DoxyCode}


Also, fixes {\ttfamily filter} and {\ttfamily map} to work with the new Web\+Driver\+JS.
\item (\href{https://github.com/angular/protractor/commit/3c048585ac811726d6c6d493ed6d43f6a3570bee}{\texttt{ 3c04858}}) chore(config)\+: remove deprecated {\ttfamily chrome\+Only}

This has been replaced with {\ttfamily direct\+Connect}.
\item Due to (\href{https://github.com/angular/protractor/commit/1159612ed76bb65612dbb2cc648e45928a251b10}{\texttt{ 1159612}})

Due to changes in how scheduling works on the control flow, specs in Jasmine1 will no longer wait for multiple commands scheduled in {\ttfamily on\+Prepare} or in the global space of the test file.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{onPrepare: function() \{}
\DoxyCodeLine{  browser.driver.manage().window().maximize();}
\DoxyCodeLine{}
\DoxyCodeLine{  // This second command will not finish before the specs start.}
\DoxyCodeLine{  browser.get('http://juliemr.github.io/protractor-\/demo');}
\DoxyCodeLine{\}}

\end{DoxyCode}


To fix, return the last promise from on\+Prepare\+:

After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{onPrepare: function() \{}
\DoxyCodeLine{  browser.driver.manage().window().maximize();}
\DoxyCodeLine{  return browser.get('http://juliemr.github.io/protractor-\/demo');}
\DoxyCodeLine{\}}

\end{DoxyCode}

\item Due to (\href{https://github.com/angular/protractor/commit/1159612ed76bb65612dbb2cc648e45928a251b10}{\texttt{ 1159612}})

Due to changes in Web\+Driver\+JS, {\ttfamily wait} without a timeout will now default to waiting for 0 ms instead of waiting indefinitely.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{browser.wait(fn); // would wait indefinitely}

\end{DoxyCode}


After 
\begin{DoxyCode}{0}
\DoxyCodeLine{browser.wait(fn, 8000) // to fix, add an explicit timeout}

\end{DoxyCode}


This will be reverted in the \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md\#v2460-dev}{\texttt{ next version of Web\+Driver\+JS}}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22471}{}\doxysection{1.\+8.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22471}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22472}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22472}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1159612ed76bb65612dbb2cc648e45928a251b10}{\texttt{ 1159612}}) fix(webdriver)\+: bump selenium to 2.\+45.\+0

Bump the selenium standalone binary to 2.\+45.\+0.

See \href{https://code.google.com/p/selenium/source/browse/java/CHANGELOG}{\texttt{ https\+://code.\+google.\+com/p/selenium/source/browse/java/\+CHANGELOG}} for a full list of changes to the selenium server.

Closes \#1734
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22473}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22473}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/54163dcd22cee27cf16685fbb4d53a2712233d26}{\texttt{ 54163dc}}) feat(a11y\+Plugin)\+: plugin for integrating with Chrome Accessibility Developer Tools

Also includes missing Angular map files. See plugins/accessibility/index.\+js for usage.
\item (\href{https://github.com/angular/protractor/commit/658902bd04bf809bde2751db79e93ae00de2f810}{\texttt{ 658902b}}) feat(plugins)\+: add post\+Test hook for plugins

Additionally, add some tests to make sure that plugins can fail properly.

Closes \#1842
\item (\href{https://github.com/angular/protractor/commit/13d34c9192a06634827d89bf356bea33fea75747}{\texttt{ 13d34c9}}) feat(a11y\+Plugin)\+: add support for Tenon.\+io
\item (\href{https://github.com/angular/protractor/commit/5f8cffd95c50ab4e7949376425f10e13747eb922}{\texttt{ 5f8cffd}}) feat(plugins)\+: allow plugins to export a name for use in reporting
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22474}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22474}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/aabdd567ee62d0d48fad499ee5decbb5d7d6b939}{\texttt{ aabdd56}}) fix(debugger)\+: breakpoint isn\textquotesingle{}t set properly for windows
\item (\href{https://github.com/angular/protractor/commit/361ae21ee761eb78d1e2c9b2b7d270873a28ef81}{\texttt{ 361ae21}}) fix(plugins)\+: add a \textquotesingle{}test\textquotesingle{} or \textquotesingle{}fail\textquotesingle{} string to plugins

Closes \#1843
\item (\href{https://github.com/angular/protractor/commit/847e73961e52caa1537df269589d9cfe6373b986}{\texttt{ 847e739}}) fix(webdriver-\/manager)\+: unzipping ie driver should overwrite old version
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22475}{}\doxysection{1.\+7.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22475}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22476}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22476}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2658865640d82617e69208cdb2263a2073a20156}{\texttt{ 2658865}}) feat(webdriver)\+: bump chromedriver to 2.\+14

Chromedriver 2.\+14 contains support for accessing elements inside the shadow DOM.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22477}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22477}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d220ecf5ebc7ba023eab728d4a684e978ff77c83}{\texttt{ d220ecf}}) feat(locators)\+: add by.\+deep\+Css selector for finding elements in the shadow dom

Usage\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{element(by.deepCss('.foo'))}
\DoxyCodeLine{equivalent to 'element(by.css('* /deep/ .foo'))}

\end{DoxyCode}



\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/324f69d6aa7c23ad77f1d50e26e0a56bade40132}{\texttt{ 324f69d}}) feat(locators)\+: add by.\+exact\+Repeater
\item (\href{https://github.com/angular/protractor/commit/eb9d56755fa93401502e7608c7c3d0f16927c082}{\texttt{ eb9d567}}) feat(frameworks)\+: add support for custom frameworks

Usage\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{exports.config = \{}
\DoxyCodeLine{  framework: 'custom',}
\DoxyCodeLine{  frameworkPath: '/path/to/your/framework/index.js'}
\DoxyCodeLine{\}}

\end{DoxyCode}



\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/9bc1c53e40161521b0c125a810f86235c974f100}{\texttt{ 9bc1c53}}) feat(expected\+Conditions)\+: add helper library for syncing with non-\/angular apps

Usage\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{var EC = protractor.ExpectedConditions;}
\DoxyCodeLine{var button = \$('\#xyz');}
\DoxyCodeLine{var isClickable = EC.elementToBeClickable(button);}
\DoxyCodeLine{}
\DoxyCodeLine{browser.get(URL); browser.wait(isClickable, 5000); //wait for an element to become clickable}
\DoxyCodeLine{button.click();}

\end{DoxyCode}


You can also customize the conditions\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{var urlChanged = function() \{}
\DoxyCodeLine{  return browser.getCurrentUrl().then(function(url) \{}
\DoxyCodeLine{    return url != 'http://www.angularjs.org';}
\DoxyCodeLine{  \});}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{// condition to wait for url to change, title to contain 'foo', and \$('abc') element to contain text 'bar'}
\DoxyCodeLine{var condition = EC.and(urlChanged, EC.titleContains('foo'),}
\DoxyCodeLine{    EC.textToBePresentInElement(\$('abc'), 'bar'));}
\DoxyCodeLine{\$('navButton').click(); browser.wait(condition, 5000); //wait for condition to be true.}
\DoxyCodeLine{// do other things}

\end{DoxyCode}



\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/fb099dedf92a64732d88401dd1b0d4d30b22650d}{\texttt{ fb099de}}) feat(element\+Explorer)\+: Combine browser.\+pause with element\+Explorer
\begin{DoxyItemize}
\item reuse logic for browser.\+pause for element\+Explorer
\item introduce browser.\+enter\+Repl
\item allow customization of driver for element\+Explorer
\item fix bug where repl cannot return an Element\+Finder (related \#1600)

Closes \#1314, \#1315
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/9def5e0e67e031949010fed4ed47178a534c99e8}{\texttt{ 9def5e0}}) feat(runner)\+: add browser.\+get\+Processed\+Config method

Now, instances of the {\ttfamily browser} object have a {\ttfamily get\+Processed\+Config} method which returns a promise that resolves to the current Protractor configuration object for the current runner instance. This means that if multi\+Capabilities are being used or tests are sharded, {\ttfamily get\+Processed\+Config} will return an object with the {\ttfamily capabilities} and {\ttfamily specs} property specific to the current instance.

Closes \#1724
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22478}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22478}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ccb165d99b69e1ae66e4c1badd2f4e04f1481e75}{\texttt{ ccb165d}}) fix(webdriver-\/manager)\+: unzipping chromedriver should override old version

See \#1813
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22479}{}\doxysection{1.\+6.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22479}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22480}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22480}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/92c5d17844a2b4dc56c483ab4a65e2bf631175f9}{\texttt{ 92c5d17}}) fix(element)\+: test crashes when using certain locators with {\ttfamily from\+Web\+Element\+\_\+}

Protractor crashes when one uses locators with find\+Elements\+Override (i.\+e. any custom protractor locator like by.\+binding/repeater/etc) in map/filter/then/each/reduce
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22481}{}\doxysection{1.\+6.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22481}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22482}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22482}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1e60a9504c883a95f3500eafa38e1fc11dc28c9b}{\texttt{ 1e60a95}}) feat(frameworks)\+: add jasmine2 framework

Jasmine2.\+x may now be used by setting {\ttfamily framework\+: jasmine2} in your config. See \href{https://github.com/angular/protractor/blob/master/docs/jasmine-upgrade.md}{\texttt{ https\+://github.\+com/angular/protractor/blob/master/docs/jasmine-\/upgrade.\+md}}
\item (\href{https://github.com/angular/protractor/commit/0b930035905d1868225667de358222e51394f3ac}{\texttt{ 0b93003}}) feat(jasmine2)\+: add \textquotesingle{}grep\textquotesingle{} option to jasmine2

Allow users to filter the specs that they want to run using simple string match. To use this feature, either\+: 1) specify jasmine\+Node\+Opts.\+grep in your conf.\+js file or 2) via commandline like \char`\"{}protractor conf.\+js -\/-\/grep=\textquotesingle{}pattern to match\textquotesingle{}\char`\"{}
\item (\href{https://github.com/angular/protractor/commit/4368842da73d4ed501df21b61daf71951e59524b}{\texttt{ 4368842}}) feat(wddebugger)\+: enable repl (with autocomplete) for browser.\+pause

See \href{https://github.com/angular/protractor/blob/master/docs/debugging.md}{\texttt{ https\+://github.\+com/angular/protractor/blob/master/docs/debugging.\+md}} for usage.
\item (\href{https://github.com/angular/protractor/commit/9c9ed31591f5a3c552222ad7feb1ecd650973902}{\texttt{ 9c9ed31}}) feat(launcher)\+: allow multicapabilities to take array of promises

Enables adding {\ttfamily get\+Multi\+Capabilities\+: function()\{\}} to your configuration file. The function returns either multi\+Capabilities or a promise of a multi\+Capabilities that is resolved after {\ttfamily before\+Launch} and before driver set up. If this is specified, both capabilities and multi\+Capabilities will be ignored.

Also allows specifying {\ttfamily selenium\+Address} in the capabilities/multi\+Capabilities object, which will override the global {\ttfamily selenium\+Address}. This allows you to use a different {\ttfamily selenium\+Address} per capabilities.

Breaking Changes\+: {\ttfamily capabilities} can no longer be a promise. Use get\+Multi\+Capabilities if you need to return a promise. {\ttfamily selenium\+Address} can no longer be a promise. Likewise, use get\+Multi\+Capabilities.
\item (\href{https://github.com/angular/protractor/commit/167038499aacfd5def03472f9f548529b273e1e0}{\texttt{ 1670384}}) feat(runner)\+: allow protractor to restart browser between tests

Enables adding {\ttfamily restart\+Browser\+Between\+Tests\+: true} to your configuration file. Note that this will slow down test suites considerably. Closes \#1435
\item (\href{https://github.com/angular/protractor/commit/56beb24b9473ceedc491f3ca00fbce1bb9a18f29}{\texttt{ 56beb24}}) feat(protractor)\+: add browser.\+get\+Registered\+Mock\+Modules()

Now {\ttfamily browser.\+get\+Registered\+Mock\+Modules()} returns a list of the functions or strings that have been registered as mock modules. For troubleshooting.

Closes \#1434.
\item (\href{https://github.com/angular/protractor/commit/5a404c27326fdb130e5d4ac5c4704b4013c78853}{\texttt{ 5a404c2}}) feat(timeline)\+: add timeline plugin

This plugin gathers test timeline information from the protractor test process, the selenium client logs (if available), and sauce labs (if available), and presents the output visually. This improves understanding of where latency issues are in tests. See \#674

Usage\+:

Add the plugin to your configuration file\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{exports.config = \{}
\DoxyCodeLine{ plugins: [\{}
\DoxyCodeLine{   path: 'node\_modules/protractor/plugins/timeline/index.js',}
\DoxyCodeLine{}
\DoxyCodeLine{    // Output json and html will go in this folder.}
\DoxyCodeLine{   outdir: 'timelines',}
\DoxyCodeLine{}
\DoxyCodeLine{    // Optional -\/ if sauceUser and sauceKey are specified, logs from}
\DoxyCodeLine{   // SauceLabs will also be parsed after test invocation.}
\DoxyCodeLine{     sauceUser: 'Jane',}
\DoxyCodeLine{     sauceKey: 'abcdefg'}
\DoxyCodeLine{   \}],}
\DoxyCodeLine{ // other configuration settings}
\DoxyCodeLine{\};}

\end{DoxyCode}



\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a9d83f7ebbce1be7f7f8c2986d1bfebccff1d6f3}{\texttt{ a9d83f7}}) feat(plugins)\+: add post\+Results hook for plugins

Allows plugins to include a post\+Results function, which will be called after webdriver has been quit and the environment has been torn down. This step may not modify the contents of the test results object.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22483}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22483}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2b4ac07eaccafec2ad88c05747a75268a3529759}{\texttt{ 2b4ac07}}) feat(webdriver)\+: version bumps for chromedriver and supported browsers

Chromedriver to 2.\+13. CI browser version bumps for Chrome 39 and Firefox 34.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22484}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22484}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/adf30ba701d2a1ec992912001723de19366bea57}{\texttt{ adf30ba}}) fix(test)\+: use a platform agnostic way to run minijasminenode
\item (\href{https://github.com/angular/protractor/commit/50ee0b4d1a1b93cedf3d099d349b937b25ee9e79}{\texttt{ 50ee0b4}}) fix(test)\+: allow to run \textquotesingle{}npm start\textquotesingle{} or \textquotesingle{}npm test\textquotesingle{} from windows too
\item (\href{https://github.com/angular/protractor/commit/b28355dabde4c507ac620b973104e98e96279f2a}{\texttt{ b28355d}}) fix(cucumber)\+: emit on cucumber scenario instead of step
\item (\href{https://github.com/angular/protractor/commit/33dcd777fe34c6682b64bda0adc4f3595b03394b}{\texttt{ 33dcd77}}) fix(util)\+: webdriver could deadlock

when prepare scripts containing promises are wrapped in a flow.\+execute
\item (\href{https://github.com/angular/protractor/commit/a877268f35cb0df8f34f60b71ad7201fef58d189}{\texttt{ a877268}}) fix(locators)\+: ng-\/repeat-\/start should not return extra null element
\item (\href{https://github.com/angular/protractor/commit/d505249fff773d0eaee8b17435ab751be8fbefa6}{\texttt{ d505249}}) fix(waitforangular)\+: improve error messages when wait\+For\+Angular fails

Previously, caught errors were being interpreted as an empty object, causing lots of errors such as \textquotesingle{}Uncaught exception\+: Error while waiting for Protractor to sync with the page\+: \{\}\textquotesingle{} Now the error message will be displayed, and a more useful custom message will be thrown if the variable \textquotesingle{}angular\textquotesingle{} is not present or the root element is not part of the ng-\/app.

See \#1474
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22485}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22485}

\begin{DoxyItemize}
\item Due to (\href{https://github.com/angular/protractor/commit/9c9ed31591f5a3c552222ad7feb1ecd650973902}{\texttt{ 9c9ed31}}) feat(launcher)\+: allow multicapabilities to take array of promises

Breaking Changes\+: {\ttfamily capabilities} can no longer be a promise. Use get\+Multi\+Capabilities if you need to return a promise. {\ttfamily selenium\+Address} can no longer be a promise. Likewise, use get\+Multi\+Capabilities.

Why is this breaking change not causing a major version bump? This feature was not fully supported previously and we worked with all known users when making the change.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22486}{}\doxysection{1.\+5.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22486}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22487}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22487}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/55a91ea137395891248db148df75dd6408c3b3a2}{\texttt{ 55a91ea}}) feat(launcher)\+: reorganize launcher + add option to store test results as JSON

You may now use {\ttfamily config.\+result\+Json\+Output\+File} to specify a location for output. See docs/reference\+Conf.\+js for more usage.
\item (\href{https://github.com/angular/protractor/commit/6a886425a11b28fce83b6eec1f52296c4f78b7f0}{\texttt{ 6a88642}}) feat(plugins)\+: basic tools for adding plugins
\item (\href{https://github.com/angular/protractor/commit/2572febe2c607d459a21e2ba99a1dcece2083d2d}{\texttt{ 2572feb}}) feat(plugin)\+: ng\+Hint plugin

For information on usage, see {\ttfamily plugins/ng\+Hint\+Plugin.\+js}. More documentation on plugins will be added soon.
\item (\href{https://github.com/angular/protractor/commit/0bbfd2b6d38392938781d846ad37b5a0fd964004}{\texttt{ 0bbfd2b}}) feat(protractor/runner)\+: allow multiple browser in test

Closes \href{https://github.com/angular/protractor/issues/381}{\texttt{ https\+://github.\+com/angular/protractor/issues/381}} Usage\+: {\ttfamily browser.\+fork\+New\+Driver\+Instance}.
\item (\href{https://github.com/angular/protractor/commit/8b5ae8ba3d2b3f1de75c0add91694e39e9c591a8}{\texttt{ 8b5ae8b}}) feat(troubleshoot)\+: Add more information when the --troubleshoot flag is used

Improve error messages and add debug info when
\begin{DoxyItemize}
\item the configuration file cannot be parsed
\item a webdriver session cannot be started
\item more than one element is found using {\ttfamily element}
\end{DoxyItemize}

Unify format used for warnings and errors.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22488}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22488}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/30023f2689171bc4f51a173d9cfd62a18fe276c5}{\texttt{ 30023f2}}) fix(runner)\+: set\+Test\+Preparer does not work

set\+Test\+Preparer would always set the test\+Prepare to config.\+onprepare during {\ttfamily runner.\+run()}. This is breaking for code that relies on set\+Test\+Preparer directly.
\item (\href{https://github.com/angular/protractor/commit/47f12ba31754346062a1e1d20380346a1c7a0659}{\texttt{ 47f12ba}}) fix(clientsidescripts)\+: make find\+By\+Css\+Containing\+Text tolerate elements with no text\+Content/inner\+Text
\item (\href{https://github.com/angular/protractor/commit/6a9b87cac9b85cde6ae464eafe4abbba27e4fe4f}{\texttt{ 6a9b87c}}) fix(elementexplorer)\+: eval always treat result as promise
\item (\href{https://github.com/angular/protractor/commit/289dbb91a0676add40c12bb85d134904c57dcefd}{\texttt{ 289dbb9}}) fix(util)\+: properly handle exceptions from on\+Prepare and on\+Exit
\item (\href{https://github.com/angular/protractor/commit/a132fac0afed5dc5fe8e2663e5aa1c1a90586920}{\texttt{ a132fac}}) fix(jasmine)\+: fix errors when iit was used

Errors were due to Jasmine not calling report\+Spec\+Starting when iit was used, but calling report\+Spec\+Results.

Closes \#1602
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22489}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22489}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/0bbfd2b6d38392938781d846ad37b5a0fd964004}{\texttt{ 0bbfd2b}}) feat(protractor/runner)\+: allow multiple browser in test

{\ttfamily protractor.\+get\+Instance()} had been unused (replaced by global {\ttfamily browser} in v0.\+12.\+0) and is now removed.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{var myBrowser2 = protractor.getInstance();}

\end{DoxyCode}


After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{// In normal tests, just use the exported global browser}
\DoxyCodeLine{var myBrowser2 = browser;}

\end{DoxyCode}


If you are creating your own instance of the Protractor class, you may still use {\ttfamily protractor.\+wrap\+Driver} as before.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22490}{}\doxysection{1.\+4.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22490}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22491}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22491}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/adef9b208fcba2a9d60347bda38a3fe3fac6bf50}{\texttt{ adef9b2}}) feat(runner)\+: add a new method of getting browser drivers -\/ direct\+Connect

direct\+Connect as an option on the configuration will replace chrome\+Only. Now, Web\+Driver\+JS allows Firefox to be used directly as well, so direct\+Connect will work for Chrome and Firefox, and throw an error if another browser is used.

This change deprecates but does not remove the chrome\+Only option.
\item (\href{https://github.com/angular/protractor/commit/06269636f52f9b3a9c73beb6191ae89a7a376cfb}{\texttt{ 0626963}}) feat(config)\+: Option to exclude test for specific capability

Add the option to exclude spec files for a specific capability. This way you can ignore spec files for one capability only. For example if the test is known to fail in the capability.

Closes \#1230
\item (\href{https://github.com/angular/protractor/commit/710cad7c5a2d838a0c4184defa1b7d4240f577f6}{\texttt{ 710cad7}}) feat(runner/frameworks)\+: Change interface contract of the protractor runner instance so that it returns a promise instead of calling a callback function
\item (\href{https://github.com/angular/protractor/commit/50f44f430851cbd76dbb3a41d6071198f6f479a4}{\texttt{ 50f44f4}}) feat(protractor)\+: add clone methods for Element\+Finder and Element\+Array\+Finder
\item (\href{https://github.com/angular/protractor/commit/eedf50b48ca55f18e8555ce5aa64ad92b03887c8}{\texttt{ eedf50b}}) feat(launcher)\+: add before\+Launch and after\+Launch
\item (\href{https://github.com/angular/protractor/commit/8dd60b73a3013bd29213c8d281819da6e545c7ff}{\texttt{ 8dd60b7}}) feat(protractor)\+: wrap negative indices for Element\+Array\+Finder.\+get(i)

Closes \#1213
\item (\href{https://github.com/angular/protractor/commit/be236e7f44c5306df36b62bb21bb3ba940c86944}{\texttt{ be236e7}}) feat(debugging)\+: use custom messages when executing scripts to improve stack traces

Now, instead of asynchronous events during execute\+Script all being described as {\ttfamily Web\+Driver.\+execute\+Script}, they have their own custom messages. The schedule shown when debugging will be more informative.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22492}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22492}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/889a5a70c1f980d09a615cf1e8ceaea33272ba8e}{\texttt{ 889a5a7}}) feat(webdriver)\+: version bumps for webdriver, chromedriver, webdriver\+JS

Upgrade to Web\+Driver 2.\+44.\+0 and Chrome\+Driver 2.\+12.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22493}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22493}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2fbaf52fd59f03929e173ebf760a97de34bf91d4}{\texttt{ 2fbaf52}}) fix(element)\+: use the root element only to find the testability API, not scope searches

In 9a8f45a a change was introduced which made Protractor\textquotesingle{}s custom locators (by.\+binding, by.\+model, etc) use config.\+root\+Element as the root for all their searches. This meant that config.\+root\+Element was used both to specify how to get hold of Angular\textquotesingle{}s injector as well as where to begin searching for elements. This does not work for all cases, for example if a dialog should be searched for elements but is a sibling, not a child, of ng-\/app.

This reverts that change, and uses document as the parent for all searches. This is consistent with the behavior of the native locators by.\+id, by.\+css, and friends, which do not scope their search based on config.\+root\+Element.
\item (\href{https://github.com/angular/protractor/commit/9db5327e4ada7eb3caa271b394bcda0ba5e8fd62}{\texttt{ 9db5327}}) fix(\+Element\+Finder)\+: Element\+Finder should allow null as success handler. Passes the value to the next in the chain.
\item (\href{https://github.com/angular/protractor/commit/0858280db156f924ef126c3aaeae6973b8d44067}{\texttt{ 0858280}}) fix(locators)\+: by.\+css\+Containing\+Text now operates on pre-\/transformed text

Previously, the implementation depended on the browser. Now, it will always operate on the text before text-\/transform is applied. Closes \#1217
\item (\href{https://github.com/angular/protractor/commit/1a4eea4eb89362822dc86be6904c1ddfba95661e}{\texttt{ 1a4eea4}}) fix(elementexplorer)\+: elementexplorer hangs when returning Element\+Finder
\item (\href{https://github.com/angular/protractor/commit/f4e6b40c597dc1c59dc7eccfe236abcc336a46a9}{\texttt{ f4e6b40}}) fix(runner)\+: webdriver could get into lock when there is async promise
\item (\href{https://github.com/angular/protractor/commit/cf284b994fb6766c8ab34d0af9b4ccf8fd866bd1}{\texttt{ cf284b9}}) fix(clientsidescripts)\+: by.\+exact\+Binding not working because of regex typo

Closes \#1441
\item (\href{https://github.com/angular/protractor/commit/9cc0f6398146ed9bfc757c1efc05d1806bab1e16}{\texttt{ 9cc0f63}}) fix(runner)\+: gracefully shutdown browsers after test
\item (\href{https://github.com/angular/protractor/commit/86ead2c5a20d474e59c3b9796b5438dc2090a6ed}{\texttt{ 86ead2c}}) fix(webdriver-\/manager)\+: Avoid incompatibility between request with callback and pipe.
\item (\href{https://github.com/angular/protractor/commit/7283fdfa1e4c69bcab6af8f28f8f1b77634a50fd}{\texttt{ 7283fdf}}) fix(launcher)\+: exit code is always 100 for sharded and 1 for nonsharded tests
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22494}{}\doxysection{1.\+3.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22494}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22495}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22495}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/714e4e28ab90fb5dfeca4375a68469ef609e2722}{\texttt{ 714e4e2}}) fix(locators)\+: fix regression passing root element to locator scripts

Closes \#1378
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22496}{}\doxysection{1.\+3.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22496}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22497}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22497}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/4f1fe68882dedba662752e722b9e7b76bfed19b6}{\texttt{ 4f1fe68}}) feat(runner)\+: Allow on\+Cleanup to accept a file
\item (\href{https://github.com/angular/protractor/commit/548f0c09748502cb6ae87e602db09e6df78df348}{\texttt{ 548f0c0}}) feat(webdriver)\+: bump Web\+Driver to version 2.\+43
\item (\href{https://github.com/angular/protractor/commit/466b3831569dc28c5fc2be31fbdf96574e57c3f0}{\texttt{ 466b383}}) feat(protractor)\+: allow advanced features for Element\+Array\+Finder

changed Element\+Finder as a subset of an Element\+Array\+Finder.

This enables actions on Element\+Array\+Finders, such as\+: `element.\+all(by.\+css('.foo\textquotesingle{})).click()\`{}

The function {\ttfamily filter} now returns an Element\+Array\+Finder, so you may also do\+: `element.\+all(by.\+css('.foo\textquotesingle{})).filter(filter\+Fn).click()\`{}

or

`element.\+all(by.\+css('.foo\textquotesingle{})).filter(filter\+Fn).last().click()\`{}
\item (\href{https://github.com/angular/protractor/commit/7bd2dde0a6fca8c8481ad68d0683b4f411d611b9}{\texttt{ 7bd2dde}}) chore(angular)\+: upgrade angular to version 1.\+3.

This change updates Protractor\textquotesingle{}s test application from 1.\+2.\+9 to 1.\+3.\+0-\/r0.

There is a significant behind-\/the-\/scenes change in the implementation of locating elements and waiting for the page to be stable. If you are updating your application to Angular 1.\+3, you may run into some changes you will need to make in your tests\+:
\begin{DoxyItemize}
\item {\ttfamily by.\+binding} no longer allows using the surrounding {\ttfamily \{\{\}\}}. Previously, these were optional. Before\+: `var el = element(by.\+binding('\{\{foo\}\}\textquotesingle{})){\ttfamily  After\+:}var el = element(by.\+binding(\textquotesingle{}foo\textquotesingle{}))\`{}
\item Prefixes {\ttfamily ng\+\_\+} and {\ttfamily x-\/ng-\/} are no longer allowed for models. Use {\ttfamily ng-\/model}.
\item {\ttfamily by.\+repeater} cannot find elements by row and column which are not children of the row. For example, if your template is {\ttfamily $<$div ng-\/repeat=\char`\"{}foo in foos\char`\"{}$>$\{\{foo.\+name\}\}$<$/div$>$} Before\+: `var el = element(by.\+repeater(\textquotesingle{}foo in foos').row(2).column(\textquotesingle{}foo.\+name\textquotesingle{})){\ttfamily  After\+: You may either enclose}\{\{foo.\+name\}\}{\ttfamily in a child element or simply use\+: }var el = element(by.\+repeater(\textquotesingle{}foo in foos\textquotesingle{}).row(2))\`{}
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ee82f9e3d0656b3c88f041f0115743352bc08941}{\texttt{ ee82f9e}}) feat(webdriver-\/manager)\+: ignore ssl checks with --ignore\+\_\+ssl option

Allow ability to ignore SSL checks when downloading webdriver binaries. Usage\+: {\ttfamily webdriver-\/manager update -\/-\/ignore\+\_\+ssl}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22498}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22498}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/838f5a2b248b1539b7ece13a8ccb921eda08ee45}{\texttt{ 838f5a2}}) fix(element)\+: is\+Present should not throw on chained finders

Now, `\$(\textquotesingle{}nonexistant').\$(\textquotesingle{}foo\textquotesingle{}).is\+Present()\`{} will return false instead of throwing an error. This change also adds tests that ensure that catching errors from promises works as expected.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22499}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22499}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f7c3c370a239218f6143a4992b1fc4763f4cdd3d}{\texttt{ f7c3c37}}) feat(webdriver)\+: update to Web\+Driver\+JS 2.\+43.\+5

Breaking Changes Web\+Driver\+JS has introduced changes in the way that Promises are handled in version 2.\+43. See \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/\+CHANGES.\+md}}
\begin{DoxyItemize}
\item {\ttfamily webdriver.\+Web\+Element} has now been split into {\ttfamily webdriver.\+Web\+Element\+Promise} and {\ttfamily webdriver.\+Web\+Element} so that it does not resolve to itself. This change should be largely transparent to users.
\item {\ttfamily Web\+Element.\+to\+Wire\+Value} has been removed.
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22500}{}\doxysection{1.\+2.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22500}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22501}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22501}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/830f51128d1ca6c8858c99617b2752172044a752}{\texttt{ 830f511}}) feat(protractor)\+: allow \href{file://}{\texttt{ file\+://}} base\+Urls

Modified protractor to support testing node-\/webkit by using string concatenation vs url.\+resolve() when the base\+Url begins with \href{file://}{\texttt{ file\+://}}

Closes \#1266.
\item (\href{https://github.com/angular/protractor/commit/71b9c97432316a8409c7c83e28a3b1eba2d83f25}{\texttt{ 71b9c97}}) feat(cucumber)\+: process the Cucumber \textquotesingle{}coffee\textquotesingle{} param
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22502}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22502}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ade9a9277558a564e15e46266a82aeb43261d958}{\texttt{ ade9a92}}) fix(webdriver-\/manager)\+: always use https for downloading webdriver binaries

This fixes issues with unzipping -\/ see \#1259
\item (\href{https://github.com/angular/protractor/commit/9a8f45af49633f1637c88960ba079d7d425ca72c}{\texttt{ 9a8f45a}}) fix(locators)\+: locators should use the root element provided in config

Previously, locators used \textquotesingle{}document\textquotesingle{} as the root for their search. After this change, they will use the root element provided in the config file -\/ {\ttfamily config.\+root\+Element}. This will make sure behavior is correct if there are multiple angular apps on one page, and also enables the get\+Testability path, because that requires a root element under an ng-\/app.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22503}{}\doxysection{1.\+1.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22503}
This is a minor release with no functional changes. It contains a couple implementation switches that new versions of Angular will use.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22504}{}\doxysection{1.\+1.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22504}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22505}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22505}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/316961c6a5d7410d73a2784a9622b106008b0930}{\texttt{ 316961c}}) feat(runner/hosted)\+: add support for promises for selenium\+Address and capabilities

Change driver\+Providers/hosted to resolve promise values in configuration to allow async jobs in setup. Specifically, selenium\+Address, capabilities, and multi\+Capabilities may be promises. Primarily, this would be for a network call to acquire a selenium host or to start a proxy server.
\item (\href{https://github.com/angular/protractor/commit/953faf7ebee345f686bfedff61ebcb29c5170083}{\texttt{ 953faf7}}) feat(runner)\+: allow on\+Prepare functions to return a promise

If on\+Prepare is a function which returns a promise (or a file which exports a promise), the test runner will now wait for that promise to be fulfilled before starting tests.
\item (\href{https://github.com/angular/protractor/commit/6de2e32328fc30b43428973457db08f34b7c1839}{\texttt{ 6de2e32}}) feat(runner)\+: Add support for async on\+Clean\+Up functions

If the on\+Clean\+Up function returns a promise, the process will allow it to resolve before exiting. This is useful for performing async operations like writing to a file or calling an API at the end of a test run.
\item (\href{https://github.com/angular/protractor/commit/cd575ee3a4d8c0930db23ad66649bf0d665ce2d6}{\texttt{ cd575ee}}) feat(sauce provider)\+: allow for custom server addresses when running against Sauce\+Labs.

Use {\ttfamily config.\+sauce\+Selenium\+Address} to connect to a custom URL for Sauce Labs.
\item (\href{https://github.com/angular/protractor/commit/1b16c26ac143910d3f3e92a3db4ac6ab168a8544}{\texttt{ 1b16c26}}) feat(suites)\+: allow more than one suite from the command line

Allow a comma-\/separated list of suites be provided on the command line, like {\ttfamily -\/-\/suite=suite1,suite2}
\item (\href{https://github.com/angular/protractor/commit/25cf88c29449cef6b925d19ec9cd17671f1befc9}{\texttt{ 25cf88c}}) feat(\+Element\+Array\+Finder)\+: keep a reference to the original locator
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22506}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22506}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d15d35a82a5a267bb7ae9c675017f091901c019f}{\texttt{ d15d35a}}) fix issue where Element\+Finder.\+then does not return a promise

See \href{https://github.com/angular/protractor/issues/1152}{\texttt{ https\+://github.\+com/angular/protractor/issues/1152}}
\item (\href{https://github.com/angular/protractor/commit/9e365848820a9a56547e884592e5ea13ef8460ea}{\texttt{ 9e36584}}) fix(webdriver-\/manager)\+: removed ssl on chromedriver url for consistency

Other URLs use http, make chromedriver use this as well.
\item (\href{https://github.com/angular/protractor/commit/0da1e0c65ba7a2b55ad2f5a4582e229dd876f940}{\texttt{ 0da1e0c}}) fix(protractor)\+: add dummy is\+Pending function

See \href{https://github.com/angular/protractor/issues/1021}{\texttt{ https\+://github.\+com/angular/protractor/issues/1021}}
\item (\href{https://github.com/angular/protractor/commit/9814af11f35973f0b4a3325fcd0d9e0d91233e61}{\texttt{ 9814af1}}) fix issue where color formatting text is leaking

See \href{https://github.com/angular/protractor/issues/1131}{\texttt{ https\+://github.\+com/angular/protractor/issues/1131}}
\item (\href{https://github.com/angular/protractor/commit/8f1b4472430ec2d24f102d284e807b073d17ad81}{\texttt{ 8f1b447}}) fix(launcher)\+: fix issue where test passes on unexpected failures
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22507}{}\doxysection{1.\+0.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22507}
No changes from rc6.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22508}{}\doxysection{1.\+0.\+0-\/rc6}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22508}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22509}{}\doxysubsection{Dependency Version Upgrades}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22509}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b6ab644dd8105d3f64e347342a0ae2ad2f0100fc}{\texttt{ b6ab644}}) chore(jasminewd)\+: update to version 1.\+0.\+4

This version contains a fix for too many timeout messages.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22510}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22510}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/0c4a70e0ffbbf4373dbd9f1ab29daabe9338d57b}{\texttt{ 0c4a70e}}) fix(protractor) fix stack traces for Web\+Element errors

When angular/protractor@3c0e727136ab3d397c1a9a2bb02692d0aeb9be40 refactored {\ttfamily element()} into the Element\+Finder object, the function lost some of its error handling. This removed references to frames inside tests ({\ttfamily it()} blocks), making it hard to tell where the error was actually occurring.

This commit fixes these problems, showing full stack traces for Web\+Element errors.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22511}{}\doxysection{1.\+0.\+0-\/rc5}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22511}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22512}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22512}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/51a5e89f7dace45e61d8eab70e1ea6e9354d4de6}{\texttt{ 51a5e89}}) feat(config)\+: allow setting the get page timeout globally from the config

To change the timeout for how long a page is allowed to stall on {\ttfamily browser.\+get}, change {\ttfamily get\+Page\+Timeout\+: timeout\+\_\+in\+\_\+millis} in the configuration. As before, you may also change the timeout for one particular {\ttfamily get} call by using a second parameter\+: {\ttfamily browser.\+get(url, timeout\+\_\+in\+\_\+sec)}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22513}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22513}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/985ff27c9a94cca83af8db5bf7e570d826b23838}{\texttt{ 985ff27}}) fix(config\+Parser)\+: load new functions from configs

Closes \#1043
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22514}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22514}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/51a5e89f7dace45e61d8eab70e1ea6e9354d4de6}{\texttt{ 51a5e89}}) feat(config)\+: allow setting the get page timeout globally from the config

This change contains a small breaking change for consistency. Previously, the second parameter to {\ttfamily get} changed the timeout in seconds. Now, the units are milliseconds. This is consistent with all the other timeouts, as well as base Java\+Script functions like set\+Timeout.
\begin{DoxyItemize}
\item before\+: {\ttfamily browser.\+get(url, 4)}
\end{DoxyItemize}
\end{DoxyItemize}

after\+: {\ttfamily browser.\+get(url, 4000)}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22515}{}\doxysection{1.\+0.\+0-\/rc4}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22515}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22516}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22516}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ab1d0be8cd83b37906b9b8750dd9d85d72}{\texttt{ ab1d0be}}) fix(navigation)\+: fix using browser.\+get with safari driver

Safari\+Driver fails with data urls -\/ see \#1049. Reverting to use about\+:blank for now.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22517}{}\doxysection{1.\+0.\+0-\/rc3}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22517}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22518}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22518}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f0e7984cdd169df947142c1cff0bd1bc33ac995b}{\texttt{ f0e7984}}) feat(launcher)\+: append capability tag for all output
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22519}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22519}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1198ddef9e353383819fca3a40bdaba0db22f96f}{\texttt{ 1198dde}}) fix(navigation)\+: use empty html data urls for page resets instead of about\+:blank

Except on internet explorer, which does not allow data urls.

Closes \#1023.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22520}{}\doxysection{1.\+0.\+0-\/rc2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22520}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22521}{}\doxysubsection{Dependency Version Updates}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22521}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/e10e1a4a8ae5013982f00d209e6fab1ff2b1d2a1}{\texttt{ e10e1a4}}) chore(minijasminenode)\+: update minijasminenode dependency to v1.\+1.\+0

This adds several options for the reporter, which can be included in protractor\textquotesingle{}s {\ttfamily config.\+jasmine\+Node\+Opts} 
\begin{DoxyCode}{0}
\DoxyCodeLine{// If true, output nothing to the terminal. Overrides other printing options.}
\DoxyCodeLine{silent: false,}
\DoxyCodeLine{// If true, print timestamps for failures}
\DoxyCodeLine{showTiming: true,}
\DoxyCodeLine{// Print failures in real time.}
\DoxyCodeLine{realtimeFailure: false}

\end{DoxyCode}

\item (\href{https://github.com/angular/protractor/commit/be0bb00db6f51e381e31e80c6808a202270ecb20}{\texttt{ be0bb00}}) chore(jasminewd)\+: update jasminewd to v1.\+0.\+3

This fixes extra logging when a timeout occurs.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22522}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22522}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/82c1d47462779688bb8c9ac74ba3a6ecfefb7775}{\texttt{ 82c1d47}}) feat(protractor)\+: add iteration index to Element\+Array\+Finder.\+each
\item (\href{https://github.com/angular/protractor/commit/62bcf7e1c84ed720bc17435c40e1f78c50ba194c}{\texttt{ 62bcf7e}}) feat(webdriver-\/manager)\+: minor proxy enhancements

Added error handling for request -\/ previously, any errors coming from the request module were silently swallowed.

Fixed error handling to remove empty files when a download fails for some reason.

Also evaluating both uppercase and lowercase proxy variables. Many tools use proxy variables in the form https\+\_\+proxy, others use HTTPS\+\_\+\+PROXY.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22523}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22523}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/dbf7ab5fdf7832676f37328e2ad96b9097db3f62}{\texttt{ dbf7ab5}}) fix(mocha)\+: mocha globals should be re-\/wrapped for every new suite

Closes \#523, closes \#962
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22524}{}\doxysection{1.\+0.\+0-\/rc1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22524}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22525}{}\doxysubsection{Dependency Version Updates}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22525}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/0dc04217a6a5b772d42b1463c91d89beca7df258}{\texttt{ 0dc0421}}) chore(selenium)\+: version bumps to selenium 2.\+42.\+2
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22526}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22526}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/6906c9326a4a83d81a0d09bdc1446cccb579d699}{\texttt{ 6906c93}}) feat(webdriver-\/manager)\+: use proxy for webdriver-\/manager
\item (\href{https://github.com/angular/protractor/commit/7d9088025c5a1c37428ea3f1cee3dc8d3793f79e}{\texttt{ 7d90880}}) feat(locators)\+: implement by.\+options
\item (\href{https://github.com/angular/protractor/commit/4e1cfe5ad0f22947d21b4ebecd7cd05e0319af1a}{\texttt{ 4e1cfe5}}) feature(launcher)\+: aggregate failures at the end and output message from the launcher
\item (\href{https://github.com/angular/protractor/commit/ff3d5ebc071a8806259f5da20018f2d937409455}{\texttt{ ff3d5eb}}) feat(locators)\+: add to\+String() wrapper for this.\+message
\item (\href{https://github.com/angular/protractor/commit/c892c2a1a773cc24cc6565efe2db892776143104}{\texttt{ c892c2a}}) feat(protractor)\+: implement reduce and filter for Element\+Array\+Finder

See \href{https://github.com/angular/protractor/issues/877}{\texttt{ https\+://github.\+com/angular/protractor/issues/877}}
\item (\href{https://github.com/angular/protractor/commit/8920028f42e683dc45e18a6dd9386bd862548010}{\texttt{ 8920028}}) feat(pause)\+: allow the user to specify a port to be used for debugging

Using browser.\+pause(port\+Number) will now start the debugger on the specified port number.

Closes \#956
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22527}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22527}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f9082d0460c7b6465d53c37f326a0f66412c21ce}{\texttt{ f9082d0}}) fix(clientsidescripts)\+: make exact\+Binding more exact

See \href{https://github.com/angular/protractor/issues/925}{\texttt{ https\+://github.\+com/angular/protractor/issues/925}}
\item (\href{https://github.com/angular/protractor/commit/6641c8168d74914d4826c5968771a2aec8299833}{\texttt{ 6641c81}}) fix(launcher)\+: report summary when specs fail
\item (\href{https://github.com/angular/protractor/commit/36e0e0aaf090b0c9b5450fa59ba2da4c4237442a}{\texttt{ 36e0e0a}}) fix(protractor)\+: allow exceptions from actions to be catchable

See \href{https://github.com/angular/protractor/issues/959}{\texttt{ https\+://github.\+com/angular/protractor/issues/959}}
\item (\href{https://github.com/angular/protractor/commit/e86eb726ad20737d463341afdb4c56b4d19ef414}{\texttt{ e86eb72}}) fix(protractor)\+: removing a mock module that was never added now is a noop

It used to remove the last module -\/ now is a noop.

Closes \#764
\item (\href{https://github.com/angular/protractor/commit/bf26f76ba5dc99d02ea4cd7fc198dce410a9f58c}{\texttt{ bf26f76}}) fix(locators)\+: findind elements by text should trim whitespace

Web\+Driver always trims whitespace from around the text of an element, so to be consistent we should trim the text from button elements before doing a by.\+button\+Text.

Closes \#903, Closes \#904.
\item (\href{https://github.com/angular/protractor/commit/48798b0a8ac1fc56d0cdd80e177d67fdf592069c}{\texttt{ 48798b0}}) fix(elementexplorer)\+: element.\+all hangs in interactive mode
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22528}{}\doxysection{0.\+24.\+2}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22528}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22529}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22529}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a43f98391d36cead7378d1dd26f54248f39300b7}{\texttt{ a43f983}}) fix(protractor)\+: make Element\+Finder.\+then resolve to itself instead of null
\item (\href{https://github.com/angular/protractor/commit/31d42a3875c5b95893d8a20d00dc5365c289ff98}{\texttt{ 31d42a3}}) fix(protractor)\+: throw index-\/out-\/of-\/bounds

See \href{https://github.com/angular/protractor/issues/915}{\texttt{ https\+://github.\+com/angular/protractor/issues/915}}
\begin{DoxyItemize}
\item to make error more specific instead of propagate later
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22530}{}\doxysection{0.\+24.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22530}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22531}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22531}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/59af936e1ef6e21432f7876144554db145083d46}{\texttt{ 59af936}}) fix(locators)\+: Missing information in warning/error messages

Webdriver\textquotesingle{}s built-\/in locators (such as {\ttfamily by.\+css()}) appeared as \textquotesingle{}undefined\textquotesingle{} in protractor\textquotesingle{}s messages.

For instance, if a locator matched multiple elements, protractor would print the following message\+: \textquotesingle{}warning\+: more than one element found for locator undefined-\/ you may need to be more specific\textquotesingle{}.
\item (\href{https://github.com/angular/protractor/commit/13373f5de18690e1994b32e092105cfe3ad1753d}{\texttt{ 13373f5}}) fix(launcher)\+: output error messages when child processes exit with error

Version 0.\+24.\+0 introduced a bug where child processes would error without outputting the error message. Fix. See \#902.
\item (\href{https://github.com/angular/protractor/commit/72668fe5ebbdc8126ff16887814f763198128ab5}{\texttt{ 72668fe}}) fix(css\+Shortcut)\+: fix \$\$ global throwing error
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22532}{}\doxysection{0.\+24.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22532}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22533}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22533}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/729915554cfa440bda0eec8a1c4bf423f4089481}{\texttt{ 7299155}}) feat(sauceprovider)\+: append spec filename to capabilities.\+name
\item (\href{https://github.com/angular/protractor/commit/f22456d3cf0768a577371776d716b8888a74397d}{\texttt{ f22456d}}) refactor(jasminewd)\+: use jasminewd from its own node module

The Jasmine Webdriver Adapter is now its own npm module. The code has been moved to \href{http://www.github.com/angular/jasminewd}{\texttt{ http\+://www.\+github.\+com/angular/jasminewd}}.

Remove the code from Protractor, and add a dependency on jasminewd@1.\+0.\+0.
\item (\href{https://github.com/angular/protractor/commit/f23565d5db4fbb102cfec8311ce9dfaee52e9113}{\texttt{ f23565d}}) feat(protractor)\+: new API allow\+Animations(bool) on protractor elements.
\item (\href{https://github.com/angular/protractor/commit/876a3c04c07a9f8d97e1edca3ec1f76e51e1a310}{\texttt{ 876a3c0}}) feat(runner)\+: support running dart2js spec files

This commit supports running Dart2\+JS output in Node\+JS. Officially, Dart2\+JS in supposed to only generate code for running in a real webbrowser. With this patch, the dart2js code can also be executed in Node\+JS.

Ref\+: \href{https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/sdk/lib/js/dart2js/js_dart2js.dart?spec=svn32943&r=32943\#487}{\texttt{ https\+://code.\+google.\+com/p/dart/source/browse/branches/bleeding\+\_\+edge/dart/sdk/lib/js/dart2js/js\+\_\+dart2js.\+dart?spec=svn32943\&r=32943\#487}}
\item (\href{https://github.com/angular/protractor/commit/8d46e210b91ed1521f6692a2cf35f60740c0ace6}{\texttt{ 8d46e21}}) feat(runner)\+: support sourcemaps in spec files

This feature allows folks who are generating their spec files from a different language to see stack traces that use the line numbers from their sources before translation.

This commit introduces a dependency on the {\ttfamily source-\/map-\/support} library.

For general information about sourcemaps, refer\+:
\begin{DoxyItemize}
\item \href{http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/}{\texttt{ http\+://www.\+html5rocks.\+com/en/tutorials/developertools/sourcemaps/}}
\item \href{https://github.com/evanw/node-source-map-support}{\texttt{ https\+://github.\+com/evanw/node-\/source-\/map-\/support}}
\item \href{https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/view}{\texttt{ https\+://docs.\+google.\+com/document/d/1\+U1\+RGAeh\+Qw\+Ryp\+UTov\+F1\+KRlpi\+OFze0b-\/\+\_\+2gc6f\+AH0\+KY0k/view}}
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22534}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22534}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/56daa54e2e269064bd44bc05ed0bbf2c44657ca8}{\texttt{ 56daa54}}) fix(clientsidescripts)\+: convert non-\/\+Error exceptions to Errors

If any functions called by client\+Side\+Scripts throws a an exception that doesn\textquotesingle{}t inherit from {\ttfamily Error}, the stack trace is completely unhelpful and the message is just \char`\"{}unknown error.\char`\"{}~ This commit wraps such errors into {\ttfamily Error} instances so that we have meaningful stack traces and the correct exception message.~ (e.\+g. This is the common case when running dart2js code.~ This commit gives us the Dart stack trace and exception message.)

In addition, I\textquotesingle{}ve pushed the construction of the string to install into the browser into clientsidescripts.\+js.
\item (\href{https://github.com/angular/protractor/commit/00c6abef16c47868974eed8ad1a4c38494b2a504}{\texttt{ 00c6abe}}) fix(element)\+: fix Web\+Element.\$ using the incorrect By object

Closes \#852
\item (\href{https://github.com/angular/protractor/commit/0500b2c3b2698fe41bedf694b92aad884f3b0d0e}{\texttt{ 0500b2c}}) fix(navigation)\+: ignore unknown JS errors when looking for the URL

This should address \#841

Ignoring the error and trying again has worked for all of my test cases, and the error has never occurred more than once in a row.
\item (\href{https://github.com/angular/protractor/commit/c8c85e0d94d7a7211b000650f01af714663611ad}{\texttt{ c8c85e0}}) fix(locators)\+: fix by.\+repeater finding all rows for IE

Previously, element.\+all(by.\+repeater(\textquotesingle{}foo in foos\textquotesingle{})) would find non-\/element nodes for ng-\/repeat-\/start elements, which could cause IEDriver to fall over if the test tried to get text from those nodes.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22535}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22535}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/3c0e727136ab3d397c1a9a2bb02692d0aeb9be40}{\texttt{ 3c0e727}}) refactor(protractor)\+: reorganize internal structure of element\+Finder/webelement
\begin{DoxyItemize}
\item Allow chaining of actions (i.\+e. `element(By.\+x).clear().send\+Keys(\textquotesingle{}abc')\`{})
\item first(), last(), and get(index) are not executed immediately, allowing them to be placed in page objects
\item Rework the way that element\+Finder and wrapped\+Web\+Element is represented
\item Breaking changes\+:
\begin{DoxyItemize}
\item element.\+all is chained differently \`{}\`{}\`{} Before\+: element(By.\+x).element.\+all(By.\+y) Now\+: element(By.\+x).all(By.\+y)

However, using element.\+all without chaining did not change, i.\+e. {\ttfamily element.\+all(By.\+x)} \`{}\`{}\`{}
\item Changed the way for retrieving underlying web\+Elements \`{}\`{}\`{} Before\+: element(By.\+x).find(), element(By.\+x).find\+Element(By.\+y), and element(By.\+x).find\+Elements(By.\+y) Now\+: element(By.\+x).get\+Web\+Element(), element(By.\+x).element(By.\+y).get\+Web\+Element(), and element(By.\+x).element(By.\+y).get\+Web\+Elements(), respectively \`{}\`{}\`{}
\item browser.\+find\+Element returns a raw Web\+Element so \$, \$\$, and evaluate will no longer be available
\end{DoxyItemize}
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/fbfc72bad15667990232bb9ff1da503e03d16230}{\texttt{ fbfc72b}}) feat(launcher)\+: Add support for max\+Session
\begin{DoxyItemize}
\item add support for max\+Session and capability-\/specific specs
\item cleaned up launcher (refactored out task\+Scheduler.\+js)
\item Breaking change\+:
\begin{DoxyItemize}
\item changed the config to shard test files; also sharding is specific to capabilities now \`{}\`{}\`{} Before\+: config.\+split\+Tests\+Between\+Capabilities Now\+: config.\+capabilities.\+shard\+Test\+Files or config.\+multi\+Capabilities\mbox{[}index\mbox{]}.shard\+Test\+Files \`{}\`{}\`{}
\end{DoxyItemize}
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/9e5d9e4abb7d0928e6092a711fda527554994be7}{\texttt{ 9e5d9e4}}) feat(locators)\+: remove deprecated locator APIs

This is a {\bfseries{breaking change}}. The following deprecated Locator APIs have been removed.
\begin{DoxyItemize}
\item {\ttfamily by.\+input}
\item {\ttfamily by.\+select}
\item {\ttfamily by.\+selected\+Option}
\item {\ttfamily by.\+textarea}
\end{DoxyItemize}

{\ttfamily input}, {\ttfamily select}, and {\ttfamily textarea} can be replaced by {\ttfamily by.\+model}.

`element(by.\+selected\+Option(\textquotesingle{}foo')){\ttfamily can be replaced by }element(by.\+model(\textquotesingle{}foo\textquotesingle{})).\$(\textquotesingle{}option\+:checked\textquotesingle{})\`{}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22536}{}\doxysection{0.\+23.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22536}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22537}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22537}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/59533d95219796ce18f796434f8c3396ada7402c}{\texttt{ 59533d9}}) fix(navigation)\+: revert changes to the page reset

Navigating to an empty data URL won\textquotesingle{}t work for internet explorer, sadly.

Reverting to about\+:blank. Will watch for flakes and explore other options.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22538}{}\doxysection{0.\+23.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22538}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22539}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22539}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b7afa8791ba91b83fd6613cdd9ad4c4c26d04f7e}{\texttt{ b7afa87}}) feat(add\+Mock\+Module)\+: allow additional parameters

Allow Protractor’s \textquotesingle{}add\+Mock\+Module\textquotesingle{} method to pass context to its mocks, providing an argument to the script which overrides a module. Rely on the Web\+Driver’s \textquotesingle{}execute\+Script\textquotesingle{} method.

Closes \#695
\item (\href{https://github.com/angular/protractor/commit/546d41faeb75342c875e0f9bb7702309c1aa186d}{\texttt{ 546d41f}}) feat(sauceprovider)\+: runner now prints a link to saucelabs test URL
\item (\href{https://github.com/angular/protractor/commit/fd7fe4a8c2c6fab6678d0c1f4d5619f7a2376990}{\texttt{ fd7fe4a}}) feat(launcher)\+: Add support for split\+Tests\+Between\+Capabilities.
\item (\href{https://github.com/angular/protractor/commit/b93bf18feaf3c44b406a41bf87d70c95e7a900e0}{\texttt{ b93bf18}}) feat(element\+Finder)\+: keep a reference to the original locator
\item (\href{https://github.com/angular/protractor/commit/98f4ba590207e3f468b3cb2a30ff6ab6ae10fea1}{\texttt{ 98f4ba5}}) feat(locators)\+: add by.\+exact\+Binding
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22540}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22540}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/43ff9e5e2a05b4e51d04133122d763ef4ed3f2d1}{\texttt{ 43ff9e5}}) fix(jasminewd)\+: allow asynchronous callbacks for jasmine tests

Closes \#728, Closes \#704
\item (\href{https://github.com/angular/protractor/commit/6249efe57109d238044394636d623e0bd93dd4ad}{\texttt{ 6249efe}}) fix(webdriver-\/manager)\+: use request module instead of http

Google changed selenium-\/server-\/standalone.\+jar\textquotesingle{}s location and is returning 302 http module does not follow redirects

Closes \#826
\item (\href{https://github.com/angular/protractor/commit/95093c3011431d1a1bdd6ec4d6139a6ff1c3e491}{\texttt{ 95093c3}}) fix(config\+Parser)\+: don\textquotesingle{}t run suite if specs are supplied
\item (\href{https://github.com/angular/protractor/commit/27a5706a23e33bc898a5a9c7b301e79f962e3a7b}{\texttt{ 27a5706}}) fix(loading)\+: fix timeouts with about\+:blank removal

As documented at \href{https://github.com/jnicklas/capybara/pull/1215}{\texttt{ https\+://github.\+com/jnicklas/capybara/pull/1215}} there are sometimes issues with webdriver and about\+:blank pages.

Switching instead to try a data url.
\item (\href{https://github.com/angular/protractor/commit/cbcdb483002e51bc3cc4061fd5162627bbac7699}{\texttt{ cbcdb48}}) fix(runner)\+: add -\/r for each cucumber require
\item (\href{https://github.com/angular/protractor/commit/e36c32a975739a99f6d434e1c9844d37382bda3a}{\texttt{ e36c32a}}) fix(jasminewd)\+: Use promise.\+all to combine promises and done
\begin{DoxyItemize}
\item Make the flow promise explicit and use promise.\+all to wait for both promises to be fulfilled before calling the done callback
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b5c18dbb746e63496809460d6ed6e2100909659e}{\texttt{ b5c18db}}) fix(drivers)\+: prevent Sauce Labs login credentials from showing up in logs

Closes \#754
\item (\href{https://github.com/angular/protractor/commit/b85af5031241d424e2952db0eb8d7d0c8ce4475b}{\texttt{ b85af50}}) fix(protractor)\+: change angular-\/bootstrap wrapper for navigation
\item (\href{https://github.com/angular/protractor/commit/8abea3cbb6f054c20e4f5abcbf61813d5b671239}{\texttt{ 8abea3c}}) fix(jasminewd)\+: fix timeout for before\+Each and after\+Each
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22541}{}\doxysection{0.\+22.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22541}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22542}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22542}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/8b088fd6bf83696fd2ad294d8818e20894332693}{\texttt{ 8b088fd}}) feat(locators)\+: Added a By.\+css\+Containing\+Text locator.

This new locator find elements by css selector and inner text in response to the lack of \textquotesingle{}\+:contains\textquotesingle{} selector.

Example\+: By.\+css\+Containing\+Text(\textquotesingle{}ul .pet\textquotesingle{}, \textquotesingle{}Dog\textquotesingle{}) will find all ul children with class \textquotesingle{}pet\textquotesingle{} containing the text \textquotesingle{}Dog\textquotesingle{}.

Closes \#488, Closes \#709
\item (\href{https://github.com/angular/protractor/commit/54060b7cef4eb2f4c184c360cef7c2eb25c0ff6a}{\texttt{ 54060b7}}) feat(protractor)\+: add the browser.\+set\+Location method to perform in-\/page navigation

Allow a faster way to navigate within the app. The current browser.\+get method forces the entire app to load every time you navigate to a new page. The proposed browser.\+set\+Location method uses the same format as \$location.\+url().

Closes \#368
\item (\href{https://github.com/angular/protractor/commit/74761e8b25395dd78e1c301ee23a7730fef36db9}{\texttt{ 74761e8}}) feat(cli)\+: use protractor.\+conf.\+js as a default config file if none is passed

Closes \#615
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22543}{}\doxysubsection{Chores and updates}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22543}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b81cf5a949dee25c9070491edd1eb9e9feee556f}{\texttt{ b81cf5a}}) chore(webdriver)\+: update Web\+Driver\+JS version to 2.\+41.\+0
\item (\href{https://github.com/angular/protractor/commit/a96df4d60a1f2e09de865bf7ca9c5c780f945239}{\texttt{ a96df4d}}) chore(minijasminenode)\+: update to version 0.\+4.\+0.

This allows the use of `because(\textquotesingle{}message')\`{} before expectations, to give additional information when a failure occurs.

It also removes warnings for Node 0.\+11.$\ast$ users about util.\+print being deprecated.

Closes \#377
\item (\href{https://github.com/angular/protractor/commit/6f31b5619de4fdb9b1b6e9a29a62dac09b781c6b}{\texttt{ 6f31b56}}) chore(package)\+: npm start now brings up the testapp

Closes \#712
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22544}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22544}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1137d12b95435438d2b84448796f9fe32d2f87b2}{\texttt{ 1137d12}}) fix(mocha)\+: fix it.\+only so that it does not double-\/wrap

Closes \#469
\item (\href{https://github.com/angular/protractor/commit/bde56a0d92a79570f377490929dd1d05107f4e25}{\texttt{ bde56a0}}) fix(cli)\+: fix --exclude command line flag

Accidentally got changed to \textquotesingle{}excludes\textquotesingle{}. As discussed earlier, should be single to be consistent with Karma.

Closes \#637
\item (\href{https://github.com/angular/protractor/commit/9e426dfd300a11f513c5d7202bbb632f4b1c41d8}{\texttt{ 9e426df}}) fix(locators)\+: using \$().\$\$() should return an Element\+Array\+Finder

Prior, .\$ would return a promise which resolved to an array of Web\+Elements. This is unexpected, since . returns an Element\+Finder, and element(by.\+css(foo)).element.\+all(by.\+css(bar)) returns an Element\+Array\+Finder. Fixed so things are more consistent.

Closes \#640
\item (\href{https://github.com/angular/protractor/commit/b67810a08d19940cd144fea25f08af4478166231}{\texttt{ b67810a}}) fix(webdriver-\/manager)\+: do not download files if HTTP response is not 200

Closes \#656
\item (\href{https://github.com/angular/protractor/commit/28912f0a77b44cce19ef5367c92b023388f7ff10}{\texttt{ 28912f0}}) fix(webdriver-\/manager)\+: fix download paths
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22545}{}\doxysection{0.\+21.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22545}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22546}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22546}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/0c4ef69c1f61a2fb41829fa6d0afae3493148eee}{\texttt{ 0c4ef69}}) feat(launcher)\+: launcher outputs a final summary of how the browsers did
\item (\href{https://github.com/angular/protractor/commit/f1db8b438fd154cef241895c01ed902b3f343315}{\texttt{ f1db8b4}}) feat(runner)\+: make runner an event emitter and log passes or failures from the launcher

Now, for runs with multiple capabilities, the launcher will output \textquotesingle{}.\textquotesingle{} or \textquotesingle{}F\textquotesingle{} for each pass or fail instead of just \textquotesingle{}.\textquotesingle{} for every chunk of data. TODO -\/ complete the event emitter API for the Cucumber runner.
\item (\href{https://github.com/angular/protractor/commit/f9c43910021095e1bee1d1074e8788f4b0aee145}{\texttt{ f9c4391}}) feat(cli+config)\+: allow defining multiple test suites in the config and running them separately from the command line.
\item (\href{https://github.com/angular/protractor/commit/06bd573cbc2471c719a8504f906468fb672d4097}{\texttt{ 06bd573}}) feat(pause)\+: add the browser.\+pause method to enter a webdriver-\/specific debugger

Warning\+: this is still beta, there may be issues. Usage\+: In test code, insert a {\ttfamily browser.\+pause()} statement. This will stop the test at that point in the webdriver control flow. No need to change the command line you use to start the test. Once paused, you can step forward, pausing before each webdriver command, and interact with the browser. Exit the debugger to continue the tests.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22547}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22547}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/43aff830bb74aa97fc4704f3aea9ef38feaee1b6}{\texttt{ 43aff83}}) fix(pageload)\+: Changing how {\ttfamily about\+:blank} unload waits Also changing {\ttfamily execute\+Script} script comment from {\ttfamily //} to {\ttfamily /$\ast$$\ast$/} format. These two small changes should not affect functionality but make Protractor work with Selendroid.
\item (\href{https://github.com/angular/protractor/commit/1334662905d8d6b642a294fbf1e97ec3bc371084}{\texttt{ 1334662}}) fix(locators)\+: Improve custom locators message

Increase readability of custom locator message by displaying each argument instead of the arguments object.
\item (\href{https://github.com/angular/protractor/commit/c9dbbaa94e2b4378bcc2db580dcad637b609a868}{\texttt{ c9dbbaa}}) refactor(launcher)\+: skip the child process if only one capability is requested

Closes \#603
\item (\href{https://github.com/angular/protractor/commit/26d67a29a8a12aa52331a1ec4ae8013cf63257f2}{\texttt{ 26d67a2}}) fix(launcher)\+: launcher should report a failure when only one capability is running
\item (\href{https://github.com/angular/protractor/commit/9530a0cab2791cb0350f81eae3f619d68fb620c3}{\texttt{ 9530a0c}}) (fix)\+: Convert test.\+sh to test.\+js

This would enable the tests to be run on both Linux and Windows.
\item (\href{https://github.com/angular/protractor/commit/6d85ab4b9f3b5824db3307df5aca77a0720dc2e6}{\texttt{ 6d85ab4}}) fix(jasminewd)\+: display stack traces in correct order and with Web\+Element method failure details
\item (\href{https://github.com/angular/protractor/commit/8964ac97cb994eb6cf7cf7ce77b7eb40882e852b}{\texttt{ 8964ac9}}) fix(test)\+: Fixed path of configuration file to pass on windows
\item (\href{https://github.com/angular/protractor/commit/99bda1aa732288f74126c9a77c48dd7cff63531a}{\texttt{ 99bda1a}}) fix(wait\+For\+Angular)\+: when timeout overflows, at least pass the negative to error messages

Closes \#622
\item (\href{https://github.com/angular/protractor/commit/4fd060a38faa1f938f880fa52746e1a481a9122d}{\texttt{ 4fd060a}}) fix (element)\+: Allow Element\+Finder to be passed to actions directly.

Previously, do to an action such as drag and drop, one would have to use {\ttfamily element(by.\+foo).find()}. Now, just passing {\ttfamily element(by.\+foo)} works. For example\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{browser.actions().doubleClick(element(by.id('mybutton'))).perform();}

\end{DoxyCode}



\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b2a4ffced58964826125ea00705e6e257cdb588b}{\texttt{ b2a4ffc}}) fix(config\+Parser)\+: always return \char`\"{}this\char`\"{} from add\+File\+Config
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22548}{}\doxysection{0.\+20.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22548}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22549}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22549}

\begin{DoxyItemize}
\item (\mbox{[}17de697\mbox{]}(\href{https://github.com/angular/protractor/commit/17de697fe9f64e238a8df0fbc6358b8e578e45f2}{\texttt{ https\+://github.\+com/angular/protractor/commit/17de697fe9f64e238a8df0fbc6358b8e578e45f2}} fix(debug)\+: make new debug work on windows too

Closes \#580
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22550}{}\doxysection{0.\+20.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22550}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22551}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22551}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/220d79372fb93d3b58c5131188b24e48be8176ab}{\texttt{ 220d793}}), (\href{https://github.com/angular/protractor/commit/6603a7e964c8f1632db4790081a71648360cf1f9}{\texttt{ 6603a7e}}) chore(webdriver)\+: update selenium version to 2.\+40.\+0 and download location
\item (\href{https://github.com/angular/protractor/commit/ad5f3aa77fc3429fcf83f825a14fdb43fd7cc8a7}{\texttt{ ad5f3aa}}) feat(jasminewd)\+: allow custom matchers to return promises

Allow custom jasmine matchers to return a promise which resolves to a boolean and match against the resolution of the promise
\item (\href{https://github.com/angular/protractor/commit/41feaca58c81fbd578c77424abf745acaf26f84f}{\texttt{ 41feaca}}) feat(framework.\+cucumber)\+: Allow multiple tags on cucumber tests.

Motivation\+: Support for multiple tags on the cucumber test execution, to be able to filter with more complex expressions the scenarios to run.

How to use\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{cucumberOpts: \{}
\DoxyCodeLine{   tags: '@dev'}
\DoxyCodeLine{\}}

\end{DoxyCode}


or
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{cucumberOpts: \{}
\DoxyCodeLine{   tags: ['@dev', '\string~@ignore']}
\DoxyCodeLine{\}}

\end{DoxyCode}


More information on tags\+: \href{https://github.com/cucumber/cucumber/wiki/Tags}{\texttt{ https\+://github.\+com/cucumber/cucumber/wiki/\+Tags}}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22552}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22552}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/2ca654114a2bf937313ff027583308f87e909892}{\texttt{ 2ca6541}}) fix(debug)\+: make protractor debug work in the new runner/launcher world

Closes \#552
\item (\href{https://github.com/angular/protractor/commit/a68627b3581c0551e04460682cfc13f8f91be366}{\texttt{ a68627b}}) fix(launcher)\+: command line args should be passed as-\/is to the runner

This allows users to continue to use optimist (or other process.\+argv) processing within their tests and grab values from the command line.

Closes \#571.
\item (\href{https://github.com/angular/protractor/commit/767c306102956ba6015cfe3998affb7e8430f259}{\texttt{ 767c306}}), (\href{https://github.com/angular/protractor/commit/02defe360dce41ee6841df9012166d249acfeca0}{\texttt{ 02defe3}}) fix(jasminewd)\+: include full pre-\/async-\/call stack trace in expectation failure message
\item (\href{https://github.com/angular/protractor/commit/b6df2cfcfd35b31e2e473604b6df9add744c6c2d}{\texttt{ b6df2cf}}) fix(config\+Parser)\+: load coffee and Live\+Script for child processes

Without loading coffee in config\+Parser.\+js, child processes which try and load a coffeescript config file do not have coffee registered with node\textquotesingle{}s required, and child tests fail.

Fixes an issue with using coffeescript config files.
\item (\href{https://github.com/angular/protractor/commit/64bee252f6df52f9243c0f5d7e40f39bf5407134}{\texttt{ 64bee25}}) fix(locators)\+: add locator with multiple arguments

When using a custom locator with multiple arguments, only the first argument was used when calling {\ttfamily webdriver.\+find\+Elements}.
\item (\href{https://github.com/angular/protractor/commit/87b0c7f2ecc8befa4fa1ebd5d8238c811a869aff}{\texttt{ 87b0c7f}}) fix(debug)\+: display error message when runner fails
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22553}{}\doxysection{0.\+19.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22553}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22554}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22554}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/77393d08343ef16ddc2b8042e187c9d68fe7bf2f}{\texttt{ 77393d0}}), (\href{https://github.com/angular/protractor/commit/68481801d506941ebf00fab71f87be510c7a87ba}{\texttt{ 6848180}}), (\href{https://github.com/angular/protractor/commit/cca82caab6ae444b368eebe040a69967d774737e}{\texttt{ cca82ca}}) feat(runner/launcher)\+: major runner updates to allow multiple capabilities

Adding simultaneous runner capability (grid-\/style), refactoring launch/runner init system, and abstracting out config\+Parser module.
\item (\href{https://github.com/angular/protractor/commit/642de06e8bbabf82c7b8e0a64a280df5c4daf01c}{\texttt{ 642de06}}) feat(protractor)\+: add remove\+Mock\+Module method
\item (\href{https://github.com/angular/protractor/commit/88c339fc1d392717a0a5b8265806934b40158c5f}{\texttt{ 88c339f}}) feat(runner)\+: add adapter for cucumber.\+js

Conflicts\+: lib/runner.\+js
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22555}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22555}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/8924bbca9e8f04073a29534bf16b0867a1ede7a0}{\texttt{ 8924bbc}}) fix(cli)\+: convert capabilities arguments to dot-\/notation for Web\+Driver compatibility
\item (\href{https://github.com/angular/protractor/commit/a96d32f44a92ba9447fc843bc0aca7b91b777635}{\texttt{ a96d32f}}) fix(webdriver-\/manager)\+: upcase in IE download url

The url for the Win32 version of the IEDriver\+Server is apparently case sensitive\+: {\itshape win32} vs {\itshape Win32}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22556}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22556}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/05eb42bb482c7cb36b48af1a86210afc442aa112}{\texttt{ 05eb42b}}) refactor(locators)\+: moves scope in locators to last argument

scope defaults to document, and is an optional argument so now be moved to the end. Came up from debugging and trying to use window.\+client\+Side\+Scripts.\+find\+Inputs(\textquotesingle{}username\textquotesingle{}); which failed. Refactored to match original intent.

BREAKING CHANGE\+: anything relying on clientsidescripts should no longer pass element scope as first argument.

Before\+:

window.\+client\+Side\+Scripts.\+find\+Inputs(document, \textquotesingle{}username\textquotesingle{});

After\+:

window.\+client\+Side\+Scripts.\+find\+Inputs(\textquotesingle{}username\textquotesingle{}, document); // or simply window.\+client\+Side\+Scripts.\+find\+Inputs(\textquotesingle{}username\textquotesingle{});

Also, any custom locators using add\+Locator will now break since the arguments order has changed. To migrate the code follow the example below\+:

Before\+:

var find\+Menu\+Item = function() \{ var dom\+Scope = arguments\mbox{[}0\mbox{]}; var my\+Arg = arguments\mbox{[}1\mbox{]}; // balh blah blah \}; by.\+add\+Locator(\textquotesingle{}menu\+Item\textquotesingle{}, find\+Menu\+Item);

After\+:

var find\+Menu\+Item = function() \{ var my\+Arg = arguments\mbox{[}0\mbox{]}; var dom\+Scope = arguments\mbox{[}1\mbox{]}; // balh blah blah \}; by.\+add\+Locator(\textquotesingle{}menu\+Item\textquotesingle{}, find\+Menu\+Item);

Closes \#497
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22557}{}\doxysection{0.\+18.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22557}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22558}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22558}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a79aa73df5df598ccad695af882d23ddaac2c2d9}{\texttt{ a79aa73}}) fix(cli)\+: specs was being processed as a string, not a list

Fixes \#495
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22559}{}\doxysection{0.\+18.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22559}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22560}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22560}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/e3b1e7cec7af35f2e245ca64e4f94227ecaa1c57}{\texttt{ e3b1e7c}}) feat(config)\+: add option to exclude specs based on file patterns

The config now accepts {\ttfamily exclude}, an array of patterns to exclude.
\item (\href{https://github.com/angular/protractor/commit/88a1e587a40f0e6d978b20fe55160a18e2855493}{\texttt{ 88a1e58}}) Feat(client\+Side\+Scripts)\+: Add by.\+button\+Text, by.\+partial\+Button\+Text

Adds client side JS implementations of by.\+button\+Text and by.\+partial\+Button\+Text, enabling element lookup based on inner\+Text.

Closes \#452
\item (\href{https://github.com/angular/protractor/commit/8d29c939766f044d910401e60834769cf8e5e44b}{\texttt{ 8d29c93}}) feat(config)\+: allow Live\+Script configuration files
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22561}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22561}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/d06d931e1cb2c2bd38c2c50965a6f78690bdc336}{\texttt{ d06d931}}) fix(timeouts)\+: fix an obscure cause of firefox timeouts

Fixes \#493
\item (\href{https://github.com/angular/protractor/commit/de39e5077d09daaeb885767e968a5cef78c9cac7}{\texttt{ de39e50}}) fix(jasminewd)\+: support multi-\/argument matchers

Implement support for multi-\/argument matchers in promise wrapper.

Closes \#477
\item (\href{https://github.com/angular/protractor/commit/11c4210fe740771707d5421a4940bdce43d3d33e}{\texttt{ 11c4210}}) fix(test\+For\+Angular)\+: add a message when page load does not complete in time
\item (\href{https://github.com/angular/protractor/commit/6ae626158ee0610b70501af5d57ad4ff379c5ead}{\texttt{ 6ae6261}}) refactor(wait\+For\+Angular)\+: improve error messages when timeouts occur
\item (\href{https://github.com/angular/protractor/commit/5dd93c2397a401011e16271f6472c72037c871b6}{\texttt{ 5dd93c2}}) fix(config)\+: allow Coffee\+Script 1.\+7 to be used

Coffee\+Script now requires a register call to be made.
\item (\href{https://github.com/angular/protractor/commit/10aec0ff212987bfdb9ab4011e6cb2f9c646fca2}{\texttt{ 10aec0f}}) fix(pageload)\+: increase wait timeout

The 300 ms wait caused problems when testing IE on Sauce Labs. It seems way too short. \char`\"{}browser.\+get()\char`\"{} invariably timed out. Increasing it solved our problem.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22562}{}\doxysection{0.\+17.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22562}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22563}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22563}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/cc4f7b55e1fe46fcef1b8c3ca39d702a32ee6d82}{\texttt{ cc4f7b5}}), (\href{https://github.com/angular/protractor/commit/834880368115ecade154b3a090e06159667c0c2d}{\texttt{ 8348803}}) feat(element)\+: allow chaining of element finders with element().element()...

Chaining calls to element will now build a scoped element finder. No webdriver functions will be called until a method (such as get\+Text) is called on the final element. Example\+: \begin{DoxyVerb}var elem = element(by.id('outer')).element(by.css('inner'));
\end{DoxyVerb}
 browser.\+get(\textquotesingle{}my\+Page\textquotesingle{}); elem.\+click();

Closes \#340.
\item (\href{https://github.com/angular/protractor/commit/088a58150f992a6520da983fc461fec4eac1a0ed}{\texttt{ 088a581}}) feat(runner)\+: add a callback for when the tests are done

Add an on\+Clean\+Up callback to be able to hook into when all the tests have been run.

Conflicts\+: reference\+Conf.\+js
\item (\href{https://github.com/angular/protractor/commit/66c4774aa18d94d4da81c101b82db4a748cf69a4}{\texttt{ 66c4774}}) feat(runner)\+: add mocha options to config file

change lib/runner to allow setting mocha options from config.
\item (\href{https://github.com/angular/protractor/commit/092fe1fc1e7d1b58b786870ff1ce33f95e652d78}{\texttt{ 092fe1f}}), (\href{https://github.com/angular/protractor/commit/3151ca7daaeeec9f537561b31c6dfd42c678f7bb}{\texttt{ 3151ca7}}) feat(locators)\+: Add map() function to element.\+all

Added a map function to element.\+all to apply a function to each element and return the result of the transformation.

Resolve promises if there is an object that contains multiple promises. Added index as a second argument to the map function callback.

Closes \#392
\item (\href{https://github.com/angular/protractor/commit/7259614a326802b8e7a906346bd9830b92e1514d}{\texttt{ 7259614}}), (\href{https://github.com/angular/protractor/commit/0257b5f225052ab0a075d96811dd56961f9278ae}{\texttt{ 0257b5f}}) feat(config)\+: allow Coffee\+Script configuration files

Require Coffee\+Script in the cli file to enable CS configuration and spec files.

Possibly fixes \#38
\item (\href{https://github.com/angular/protractor/commit/e7d9e081cdc7fcf100e0346b1dcf0f7fdad7d889}{\texttt{ e7d9e08}}) feat(global)\+: export By (== by) on the global for use with coffeescript (or others who prefer it)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22564}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22564}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a0bd84b9a28ec92eccd2784f8b849388985a4480}{\texttt{ a0bd84b}}) fix(pageload)\+: add a wait during protractor.\+get() to solve unload issues

Some systems would not wait for the browser unload event to finish before beginning the asynchronous script execution.

Closes \#406. Closes \#85.
\item (\href{https://github.com/angular/protractor/commit/4b053ebe587d51562d77ca512848be28195ae0cc}{\texttt{ 4b053eb}}) fix(runner)\+: only run selenium with spec files

Only setup Selenium if there are actual spec files passed in
\item (\href{https://github.com/angular/protractor/commit/8e096b9a91af9c37ab4bf84e100568544351efc8}{\texttt{ 8e096b9}}) fix(Protractor.\+prototype.\+get)\+: resolve {\ttfamily base\+Url} before ignoring synchronization

Fixes issues where setting {\ttfamily ignore\+Synchronization = true} ignores the value of {\ttfamily base\+Url} entirely.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22565}{}\doxysection{0.\+16.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22565}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}

{\itshape Note\+: 0.\+16.\+0 was released as a canary -\/ no changelog for it.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22566}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22566}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a75fa04a70f64e0da29b9a0a9100bd60d9ebf93f}{\texttt{ a75fa04}}) docs(readme)\+: add the travis status widget
\item (\href{https://github.com/angular/protractor/commit/478c00a01dc9b93de68983b6ef2dfa55f0b42649}{\texttt{ 478c00a}}) feat(runner)\+: add beta support for using mocha as your test framework

This change adds limited support for using mocha as the test framework instead of jasmine. Make the switch by using {\ttfamily -\/-\/framework=mocha} on the command line or adding `framework\+: \textquotesingle{}mocha'\`{} to the config. Tests will be run using the BDD interface. The interface is adapted so that tests run asynchronously without needing to call {\ttfamily done()}.

Note that there is currently no support for an assertion framework, so you will need to require whichever assertion framework you prefer. This means there is no adapter to make the assertions unwrap promises, so you will need to resolve promises yourself and run the assertions afterwards.
\item (\href{https://github.com/angular/protractor/commit/3731abf901c4278b4470336c3a58765161b08bcc}{\texttt{ 3731abf}}) feat(webdriver-\/manager)\+: add selenium\+Port command line option

Added selenium\+Port command line option so that the standalone selenium server can be started with the supplied port number as opposed to the default port 4444. 
\begin{DoxyCode}{0}
\DoxyCodeLine{\$ webdriver-\/manager start -\/-\/seleniumPort 4443}

\end{DoxyCode}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22567}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22567}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/bc18c42dab6207d111f88ea1f1deefb9bcc28f23}{\texttt{ bc18c42}}) chore(config)\+: saucelabs requires tunnel identifier to be a string
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22568}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22568}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/478c00a01dc9b93de68983b6ef2dfa55f0b42649}{\texttt{ 478c00a}}) feat(runner)\+: add beta support for using mocha as your test framework

To allow the user to customize their framework, the protractor runner will now wait until just before {\ttfamily on\+Prepare} to load the framework. This means that {\ttfamily jasmine} will not be available in global until {\ttfamily on\+Prepare}. For example, this means that requiring the jasmine-\/reporters module must be done inside on\+Prepare, since that module expects jasmine to be available at the time it is loaded.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22569}{}\doxysection{0.\+15.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22569}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22570}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22570}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f8d02910340f54af92a8ed5fdd067fa03ca2cef8}{\texttt{ f8d0291}}) chore(version)\+: update the version of dependency minijasminenode

This is notable because in the newer 0.\+2.\+6 version of minijasminenode, ddescribe and iit are supported. These should be available after running an \textquotesingle{}npm update\textquotesingle{}.
\item (\href{https://github.com/angular/protractor/commit/6165023a9593f4f69fe342761b8b2d75923baf7a}{\texttt{ 6165023}}) feat(runner)\+: return a promise from runner.\+run\+Once

In some cases knowing when the runner has finished is a requirement (e.\+g. an async grunt task).
\item (\href{https://github.com/angular/protractor/commit/d44ef01c64023b4e3a24a9959740676b691f6074}{\texttt{ d44ef01}}) feat(debugging)\+: remove webdriver lines from stacktraces by default to improve readability
\item (\href{https://github.com/angular/protractor/commit/33fa4a43acfbe87f3a4d4c84fa93c5c20b3cca0c}{\texttt{ 33fa4a4}}) feat(locators)\+: by model works for anything with a model, not just input

Notably, by.\+model will now find selects and textareas.

Closes \#321.
\item (\href{https://github.com/angular/protractor/commit/238bb7429572f9a9f6620bf1317690f1ac825960}{\texttt{ 238bb74}}) feat(ignoresync)\+: ignore\+Synchronization now affects the behavior of browser.\+get

Now, when ignoring synchronization, calls to browser.\+get are equivalent to calling browser.\+driver.\+get.

Closes \#306
\item (\href{https://github.com/angular/protractor/commit/30c0ceb3e2745d3bcc549f4d4963d9fade132e71}{\texttt{ 30c0ceb}}) feat(element) element.\+all exports an \textquotesingle{}each\textquotesingle{} method

Usage\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{element.all(by.model('foo')).each(function(webElement) \{}
\DoxyCodeLine{  // Do stuff with webElement.}
\DoxyCodeLine{\});}

\end{DoxyCode}
 Closes \#298
\item (\href{https://github.com/angular/protractor/commit/6a73a25c61a72ef991a604eadae010c90a157266}{\texttt{ 6a73a25}}) feat(by.\+repeat) by.\+repeat support for multi ng-\/repeat

Make by.\+repeat (and its column and row friends) work with ng-\/repeat-\/start and ng-\/repeat-\/end elements.

Closes \#366. Closes \#182.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22571}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22571}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/50d6fde25148e24d7ef22be371b04333cdf61e50}{\texttt{ 50d6fde}}) fix(client\+Side\+Scripts)\+: bind-\/template directive shouldn\textquotesingle{}t break bind locators

Fix \char`\"{}\+Unknown\+Error\+: angular.\+element(...).\+data(...).\$binding\mbox{[}0\mbox{]} is   undefined\char`\"{} error raised when trying to use \char`\"{}by.\+binding\char`\"{} locator in any element of a page that contains at least one \char`\"{}bind-\/template\char`\"{} directive.
\item (\href{https://github.com/angular/protractor/commit/f8c606bae7b2f414a67b6349f841881132d9cc97}{\texttt{ f8c606b}}) fix(webdriver-\/manager)\+: make sure selenium standalone shuts down nicely

This addresses selenium server shutdown in two ways
\begin{DoxyItemize}
\item the node process will stay open until selenium has exited
\item if the user inputs to STDIN (e.\+g. press space) selenium will shut down gracefully
\end{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/e98f71ebd7778d5c77c41bbecc73e31f1aeca177}{\texttt{ e98f71e}}) fix(webdriver-\/manager)\+: fix IEDriver install and running via windows

Changed the binaries.\+ie.\+url function to return the correct URL for the IEDriver\+Server. Created the zip object in the win32 section to be able to decompress IEDriver\+Server. Added a function to normalize a command across OS and spawn it. It allows start the webdriver in win32.

Seen here\+: \href{https://github.com/yeoman/generator/blob/master/lib/actions/spawn_command.js}{\texttt{ https\+://github.\+com/yeoman/generator/blob/master/lib/actions/spawn\+\_\+command.\+js}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22572}{}\doxysection{0.\+14.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22572}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22573}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22573}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c579a1a01bae6798a87a5ca8915417775e1b6fb2}{\texttt{ c579a1a}}), (\href{https://github.com/angular/protractor/commit/f54fd5d7c3caa8df319a0115086bb4db8443d856}{\texttt{ f54fd5d}}) feat(webdriver-\/manager)\+: redo the script to run and install selenium/webdriver

Breaking Change. As outlined in Issue \#296, redoing the way the selenium/webdriver install and run helper scripts work. Now, the \textquotesingle{}webdriver-\/manager\textquotesingle{} script will be available either locally or globally (depending on how protractor was installed). It replaced install\+\_\+selenium\+\_\+standalone and the \textquotesingle{}start\textquotesingle{} script that was provided after install. Run {\ttfamily webdriver-\/manager update} to download new versions of selected webdriver binaries. Run {\ttfamily webdriver-\/manager start} to start the standalone server. In addition, this fixes issues with running the server starter in Windows, and allows automated downloading of the IEDriver.

Thanks to kurthong and vipper for their PRs with windows fixes, which were very useful in preparing this.
\item (\href{https://github.com/angular/protractor/commit/a69ebc3b783fb7bf42877a658498de90d3d196c3}{\texttt{ a69ebc3}}) feat(runner)\+: use selenium and chromedriver from the default location if nothing else is specified
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22574}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22574}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1fa090c656cbab55bdbfb101b503b53811b50dff}{\texttt{ 1fa090c}}) fix(runner)\+: merge should override entire arrays, not just parts of them

Closes \#304
\item (\href{https://github.com/angular/protractor/commit/a2afb4d8399ba980674c79138dd98efb683e9ab9}{\texttt{ a2afb4d}}) fix(element)\+: element.\+all.\+get and element.\+all.\+first/last should wrap web elements

Closes \#307
\item (\href{https://github.com/angular/protractor/commit/f3be1727cf95dea50b597d20c6510e62a605dee2}{\texttt{ f3be172}}) fix(runner)\+: running with chrome\+Only should try to find chromedriver with .exe extension

Closes \#283
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22575}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22575}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c579a1a01bae6798a87a5ca8915417775e1b6fb2}{\texttt{ c579a1a}}) feat(webdriver-\/manager)\+: redo the script to run and install selenium/webdriver

Breaking Change. Your old selenium/start script will continue to work, but install\+\_\+selenium\+\_\+standalone no longer exists. To do a clean update, remove the selenium folder. Then run {\ttfamily webdriver-\/manager update}
\item (\href{https://github.com/angular/protractor/commit/a1c91a29af5c1e1f35744462ca16ef4b33ad6c48}{\texttt{ a1c91a2}}) fix(config)\+: Make all file paths in config files relative to the config file itself

Breaking Change Previously, on\+Prepare and specs were relative to the location of the config, but selenium\+Server\+Jar and chrome\+Driver were relative to the cwd when the test was called. If you were calling the tests from somewhere other than the same directory as the config location, you will need to change the paths of selenium\+Server\+Jar and/or chrome\+Driver. Closes \#222.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22576}{}\doxysection{0.\+13.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22576}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22577}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22577}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/ce5f494289c3750b84c6783339a14342a1b74f3d}{\texttt{ ce5f494}}) feat(element)\+: element.\+all now has \textquotesingle{}first\textquotesingle{} and \textquotesingle{}last\textquotesingle{} methods
\item (\href{https://github.com/angular/protractor/commit/ef6166232186b3385769f63430819a722052cc44}{\texttt{ ef61662}}) feat(runner)\+: allow bypassing the selenium standalone server if running only chrome

Using the config option {\ttfamily chrome\+Only} now enables running Chrome\+Driver directly, without going through the Selenium Standalone. The chromedriver binary should be available in your PATH, or should be specified with the config option {\ttfamily chrome\+Driver}.
\item (\href{https://github.com/angular/protractor/commit/76c094a3fa69511b0311011b0ef2c7343b8e655b}{\texttt{ 76c094a}}) feat(get\+Location\+Abs\+Url) -\/ allows current url to be obtained on IE (and Chrome/\+Firefox)
\item (\href{https://github.com/angular/protractor/commit/6a1c91848858453d0af712588b51c0bdaa0c9445}{\texttt{ 6a1c918}}) feat(runner)\+: add error message for bad jar path
\item (\href{https://github.com/angular/protractor/commit/98bce7e2ac1e659faf2d8727e1fda210b796525e}{\texttt{ 98bce7e}}) feat(locators)\+: add the ability to add custom element locators with by.\+add\+Locator

Custom locators can now be added using by.\+add\+Locator(name, script), where script is a self-\/contained snippet to be executed on the browser which returns an array of elements. Closes \#236.
\item (\href{https://github.com/angular/protractor/commit/c7bcc20c07416237f69f7934d257b5ba5bfe8c1f}{\texttt{ c7bcc20}}) chore(angular)\+: update to angular 1.\+2
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22578}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22578}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a24eeee4f08e973ffcecd107b6610ce1c2c5e3f6}{\texttt{ a24eeee}}) fix(runner)\+: do not error out if only one spec pattern does not match any files

Previously, the runner would throw an error if any one of the spec patterns did not match any files. Now it logs a warning in that case, and errors out only if there are no found files in any spec patterns. Closes \#260
\item (\href{https://github.com/angular/protractor/commit/f3b3fdbcbc8fe4f3c5915ef0f6eb7c89e339a62e}{\texttt{ f3b3fdb}}) fix(element)\+: fix an error where all.\+then() wasn\textquotesingle{}t calling callbacks.

Closes \#267
\item (\href{https://github.com/angular/protractor/commit/137d8040778215fd841654d3ca465b71f8719ea5}{\texttt{ 137d804}}) fix(jasminewd)\+: patched matcher should understand \textquotesingle{}not\textquotesingle{}

Closes \#139.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22579}{}\doxysection{0.\+12.\+1}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22579}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22580}{}\doxysubsection{Minor features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22580}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/201b59c2e728c56d2a88a1167ed3007b22ab9034}{\texttt{ 201b59c}}) feat(jasminewd)\+: better error messaging when expect is called with a Web\+Element
\item (\href{https://github.com/angular/protractor/commit/d383770499da4b08b74ad53c20ffa288147f94e9}{\texttt{ d383770}}) feat(clientsidescripts)\+: better error reporting from test\+For\+Angular and wait\+For\+Angular
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22581}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22581}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/8580c0c76c5ccd3c55d053e59d8df37b3c4cf35a}{\texttt{ 8580c0c}}) fix(install-\/selenium)\+: update to chromedriver 2.\+6

Update to the latest version of Chromedriver. This fixes the issue with OS X 10.\+9. Closes \#181.
\item (\href{https://github.com/angular/protractor/commit/ebc528fec2c2e88b0f9e32cee0661ecd79da2252}{\texttt{ ebc528f}}) fix(debugging)\+: switch debugging tests to the new test app urls.
\item (\href{https://github.com/angular/protractor/commit/8ff47875488647513f4199bab36e3b0023dd305d}{\texttt{ 8ff4787}}) fix(runner)\+: exit with proper code when tests fail

When errors with messages matching /timeout/ were created, Protractor clears the control flow so that the remainder of the tasks scheduled for that spec don\textquotesingle{}t bleed over into the next spec. This was messing up the promises used in the runner, since they are also webdriver promises. Long term, the runner should {\itshape not} use webdriver promises. For now, fix by having the runner resolve promises directly rather than through chaining, and add a TODO to use promises which aren\textquotesingle{}t connected to Web\+Driver\textquotesingle{}s control flow in the runner.

Closes \#214.
\item (\href{https://github.com/angular/protractor/commit/81501c5d941cd7edb15439cef7c7a64c0e773e27}{\texttt{ 81501c5}}) fix(clientsidescripts)\+: workaround for IE 8 \char`\"{}async page reload\char`\"{} init problem
\item (\href{https://github.com/angular/protractor/commit/21264fdc2f6cb3345c8f005936c74985ecd811dc}{\texttt{ 21264fd}}) fix(find)\+: fix error when exposed to ng-\/options element with a default option

Protractor will now ignore elements with the ng-\/bind class that don\textquotesingle{}t have a proper binding on their data, instead of blowing up when encoutering them.

Closes \#165, may fix \#170
\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/f6726482cd2ce9a7dda9ccdeeb93574d3b9293e3}{\texttt{ f672648}}) fix(findelements)\+: fix is\+Present for repeaters by row for real
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22582}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22582}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/bf5b076cb8897d844c25baa91c263a12c61e3ab3}{\texttt{ bf5b076}}) fix(cli)\+: remove boolean verbose and stack trace options

Also add better description for what the command line options are.

Tiny breaking change\+: Rename the \textquotesingle{}include\+Stack\+Trace\textquotesingle{} command line option to \textquotesingle{}stack\+Trace\textquotesingle{} for brevity.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22583}{}\doxysection{0.\+12.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22583}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}

This change introduces major syntax updates. Using the new syntax is recommended, but the old version is still supported for now. Note also that the test application, docs, and example tests have been updated.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22584}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22584}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/a2cd6c8baf242a81c4efea1f55249d597de95329}{\texttt{ a2cd6c8}}) feat(syntax)\+: big syntax reboot, expose global \$, \$\$, element, and by
\end{DoxyItemize}

In an effort to make tests more readable and clear, a few more global variables will now be exported.

{\ttfamily browser} is an instance of protractor. This was previously accessed using {\ttfamily protractor.\+get\+Instance}.

{\ttfamily by} is a collection of element locators. Previously, this was {\ttfamily protractor.\+By}.

{\ttfamily \$} is a shortcut for getting elements by css. `\$('.foo\textquotesingle{}){\ttfamily ===}element(by.\+css(\textquotesingle{}.foo\textquotesingle{}))\`{}

All changes should be backwards incompatible, as tested with the new \textquotesingle{}backwardscompat\textquotesingle{} tests.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22585}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22585}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/8c87ae6b430479445744a2f5c8eaca7f5f03d61d}{\texttt{ 8c87ae6}}) fix(on\+Prepare)\+: on\+Prepare with a string argument should resolve from the config directory
\end{DoxyItemize}

on\+Prepare can take a string, which is a filename containing a script to load adn execute before any tests run. This fixes the string to resolve the filename relative to the config file, instead of relative to the current working directory where protractor is called.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22586}{}\doxysection{0.\+11.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22586}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22587}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22587}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/02cb8199d89c6645d0bc9dbb39e5cb27517bfaf3}{\texttt{ 02cb819}}) feat(cli)\+: allow passing params directly to your test
\end{DoxyItemize}

Adds a config object \textquotesingle{}params\textquotesingle{} which is passed directly to instances of protractor. \textquotesingle{}params\textquotesingle{} may contain nested objects, and can be changed via the command line as\+:

--params.\+login.\+user \textquotesingle{}Joe\textquotesingle{} --params.\+login.\+password \textquotesingle{}abc\textquotesingle{}

This change also switches to using optimist to parse command line flags for more flexibility and better usage documentation. Closes \#32.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c025ddbe617b977908db509f365cc882924b196f}{\texttt{ c025ddb}}) feat(find\+Elements)\+: \$ \& \$\$ shortcuts.
\end{DoxyItemize}

Introducing the \$ shortcut method for finding a single element by css without having to call protractor.\+By.\+css. Additionally \$\$ for finding all elements by css.

Examples\+:
\begin{DoxyItemize}
\item ptor.\$(\textquotesingle{}.some .selector\textquotesingle{})
\item ptor.\$\$(\textquotesingle{}.some .selector\textquotesingle{})
\item (\href{https://github.com/angular/protractor/commit/7d7418411ea4a9d696855f755899161ecb36818d}{\texttt{ 7d74184}}) feat(explorer)\+: add an interactive element explorer
\end{DoxyItemize}

When debugging or first writing test suites, you may find it helpful to try out Protractor commands without starting up the entire test suite. You can do this with the element explorer. This change introduces a first version of the element explorer. Closes \#107\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22588}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22588}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/e45ceaae825cce0ec69580b8f6e93d102d4d61f1}{\texttt{ e45ceaa}}) fix(repeaters)\+: allow finding all rows of a repeater
\end{DoxyItemize}

Now, finding an element with the strategy \textquotesingle{}protractor.\+By.\+repeater()\textquotesingle{} returns a promise which will resolve to an array of Web\+Elements, where each Web\+Element is a row in the repeater. Closes \#149.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b501ceb7b776a5d9f1c2659326577601d0fbce5a}{\texttt{ b501ceb}}) fix(find\+Elements)\+: Consistently include evaluate.
\end{DoxyItemize}

When using find\+Elements with a css locator, wrap the returned list of elements with protractor specific functionality.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c17ac12c2a213a7b6f8c236e81ba5cb2db542fd0}{\texttt{ c17ac12}}) fix(cli)\+: allow running from command line without a config file
\end{DoxyItemize}

If all necessary fields are specified (e.\+g. selenium\+Address and at least one spec), a config file shouldn\textquotesingle{}t be necessary.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22589}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22589}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/421d6232fe0b45ca1758afd634997da644f2e1db}{\texttt{ 421d623}}) fix(repeat)\+: use 0-\/based indexing for repeater rows
\end{DoxyItemize}

BREAKING CHANGE\+: Finding rows with protractor.\+By.\+repeater now indexes from 0 instead of 1. This should be more familiar to most modern programmers. You will need to edit existing tests. Closes \#90.

Before\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{// The fourth foo}
\DoxyCodeLine{ptor.findElement(protractor.By.repeater('foo in foos').row(4)); }

\end{DoxyCode}
 After\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{// The fourth foo}
\DoxyCodeLine{ptor.findElement(protractor.By.repeater('foo in foos').row(3)); }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22590}{}\doxysection{0.\+10.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22590}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22591}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22591}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/881759e77462dc8e1001eb77008668ae6dc552cd}{\texttt{ 881759e}}) feat(timeouts)\+: add a unique error message when wait\+For\+Angular times out
\end{DoxyItemize}

To improve the readability of error messages, when wait\+For\+Angular times out it now produces a custom message. This should help clarify confusion for pages that continually poll using \$interval. This change also adds more documentation on timeouts. See issue \#109.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/37e0f1af196c3c0bf54dcddf0088a8c16602e5f2}{\texttt{ 37e0f1a}}) feat(install selenium)\+: better communication in the install script
\end{DoxyItemize}

Adds better messages in the selenium server install script, and also makes the script output a \textquotesingle{}start\textquotesingle{} executable which can be used to quickly start up the selenium standalone. {\itshape not yet windows friendly}. Closes \#108.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/b32f5a59169f1324271bd5abc09c17fcd9c4f249}{\texttt{ b32f5a5}}) feat(config)\+: add examples for dealing with log-\/in
\end{DoxyItemize}

Adds examples for how to log in when the login page is not written in Angular. New examples are in spec/login.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1b7675aab7846bee54117876887bfec07ce31745}{\texttt{ 1b7675a}}) feat(cli)\+: add an on\+Prepare callback to the config
\end{DoxyItemize}

This on\+Prepare callback is useful when you want to do something with protractor before running the specs. For example, you might want to monkey-\/patch protractor with custom functions used by all the specs, or add the protractor instance to the globals. An example usage is shown in the spec/on\+Prepare\+Conf.\+js file and its associated spec.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22592}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22592}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/256b21cf8c744a200892e6b7f9172150b2f4fe8d}{\texttt{ 256b21c}}) fix(cli)\+: allow passing the config file before the options
\end{DoxyItemize}

The cli usage says\+: \begin{quote}
USAGE\+: protractor config\+File \mbox{[}options\mbox{]} \end{quote}
However, the options passed as argument are merged into the default configuration as soon as the config\+File is met in the args parsing loop. This fix merges the options in the default configuration only after the loop, allowing to pass the options to the cli before or after, or around the config file.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/62238252c7fc68c6a5941883f6a272e95997a8ff}{\texttt{ 6223825}}) fix(jasminewd)\+: allow use of custom matchers
\end{DoxyItemize}

Using jasmine.\+Matchers.\+prototype to generate the chained methods for expect() calls is flawed because it does not pick up custom matchers defined using add\+Matcher. Instead, use either the matchers\+Class for the current spec or from the environment.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/c22fc387bc0ef7a07371e023d39a6ce58dfa56c9}{\texttt{ c22fc38}}) fix(sync)\+: get\+Current\+Url and friends should sync with Angular first
\end{DoxyItemize}

get\+Current\+Url, get\+Page\+Source, and get\+Title should sync with Angular before executing. Closes \#92.


\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/dd067561cf9fe0a765e98605b9ebdd8fbfef04d3}{\texttt{ dd06756}}) fix(clientsidescripts)\+: find\+Elements and is\+Element\+Present for protractor.\+By.\+select
\item (\href{https://github.com/angular/protractor/commit/c60745945c6514e25403783eab3de5873e15758b}{\texttt{ c607459}}) fix (navigation)\+: The defer label should appear before other window names, not after.
\item (\href{https://github.com/angular/protractor/commit/806f38113c675a26171776a559a20bf3899aa2cc}{\texttt{ 806f381}}) Fix\+: find\+Elements() and is\+Element\+Present() now work for protractor.\+By.\+input. Closes \#79.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22593}{}\doxysubsection{Breaking changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22593}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/881759e77462dc8e1001eb77008668ae6dc552cd}{\texttt{ 881759e}}) feat(timeouts)\+: add a unique error message when wait\+For\+Angular times out
\end{DoxyItemize}

This changes the default script timeout from 100 seconds down to 11. Tests which relied on extremely long timeouts will need to change the default script timeout with {\ttfamily driver.\+manage().timeouts().set\+Script\+Timeout($<$big\+Number$>$)}.\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22594}{}\doxysection{0.\+9.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22594}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22595}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22595}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/0e8de99eb0d8a0db4f6d3538dd051c94f35775f5}{\texttt{ 0e8de99}}) Wrap Web\+Elements with Protractor specific features. This change allows chained find\+Element calls to work with Protractor locators. It also adds a function, evaluate, to evaluate an angular expression in the context of a Web\+Element\textquotesingle{}s scope.
\item (\href{https://github.com/angular/protractor/commit/9f5311812cbae5122ce2c6ebe522132273b0ebcc}{\texttt{ 9f53118}}) Improving the command line interface (adding more options). This allows the --spec option to be passed with test files that will be resolved relative to the current directory. Smarter merging of default config values. Closes \#65.
\item (\href{https://github.com/angular/protractor/commit/73821fb6b6d252a93cc15ce990b4ec4738b87b95}{\texttt{ 73821fb}}) Adding an \textquotesingle{}ignore\+Synchronization\textquotesingle{} property to turn off Protractor\textquotesingle{}s attempt to wait for Angular to be ready on a page. This can be used to test pages that poll with \$timeout or \$http.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22596}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22596}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/cfc6438e80e77387afae776f289cd55813e9b2d9}{\texttt{ cfc6438}}) Adding support for is\+Element\+Present with Protractor locators. Closes \#11.
\item (\href{https://github.com/angular/protractor/commit/8329b01865074c32f7a261fe9bbf2c151b704a34}{\texttt{ 8329b01}}) Adding wait\+For\+Angular calls before Web\+Element functions. Closes \#37.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22597}{}\doxysection{0.\+8.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22597}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22598}{}\doxysubsection{Docs}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22598}

\begin{DoxyItemize}
\item Added documentation to the \href{https://github.com/angular/protractor/tree/master/docs}{\texttt{ docs folder}}.
\item (\href{https://github.com/angular/protractor/commit/08ef244217fb83206c818c84cbe8f07999116ee3}{\texttt{ 08ef244}}) Adding debugging tests showing different types of timeouts, and fixing a bug where scheduled tasks from a previous it block would run into the next in case of a timeout.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22599}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22599}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1c7eae0c09f13b7068f81324f24967709e264241}{\texttt{ 1c7eae0}}) Updating the binary script to understand debug, so that protractor debug conf.\+js works.
\item (\href{https://github.com/angular/protractor/commit/7a594791b5ac6616de9c98dcd7d44ecaffb0e8a3}{\texttt{ 7a59479}}) Adding a \textquotesingle{}debug\textquotesingle{} function to protractor. This schedules a debugger pause within the webdriver control flow.
\item (\href{https://github.com/angular/protractor/commit/679c82d510ea016690fba259db50b4afa36154cc}{\texttt{ 679c82d}}) Mixing in all webdriver exports to protractor. This means that webdriver classes such as Action\+Sequence and Keys are accessible on the global protractor.
\item (\href{https://github.com/angular/protractor/commit/3c76246a01e584bc30da645a36e75920b5397251}{\texttt{ 3c76246}}) Added nested angular app (ng-\/app on an element other than {\ttfamily $<$html$>$} or {\ttfamily $<$body$>$}) capability via conf file.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22600}{}\doxysubsection{Bug fixes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22600}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/1c9b98d0464bbe57194cf340c6e5942cbe7c8385}{\texttt{ 1c9b98d}}) Fixed Sauce issues\+: low timeouts, shutdown and init order.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22601}{}\doxysubsection{Breaking Changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22601}

\begin{DoxyItemize}
\item Now running selenium 2.\+25. Requires updating Web\+Driver\+JS and the selenium standalone binary and chromedriver binary.
\item (\href{https://github.com/angular/protractor/commit/a54abfbbfd3b13be5144e64e52a267c73d409a81}{\texttt{ a54abfb}}) Spec paths in configuration files are now resolved from the location of the spec file instead of the current working directory when the command line is run.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22602}{}\doxysection{0.\+7.\+0}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22602}
{\itshape Note\+: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22603}{}\doxysubsection{Features}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22603}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/796691205795d93fe12c998d20a58c8220ac6fb7}{\texttt{ 7966912}}) Updating to Selenium 2.\+24.
\item (\href{https://github.com/angular/protractor/commit/90f0a942b09faff5924674a20ce7705b6d685eba}{\texttt{ 90f0a94}}) Instead of having tests run with the protractor runner need to require() the protractor library, publish it to the global namespace. This insures the instance of protractor used within the tests is the same as the one used on the command line. Closes \#36. Version bump for incompatible API changes.
\item (\href{https://github.com/angular/protractor/commit/cb373c99a7e33c5514bf1d2728a64f631ec8784c}{\texttt{ cb373c9}}) Adding glob matching to the spec files from the config. Closes \#29.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22604}{}\doxysubsection{Breaking changes}\label{md_sfcode_node_modules_protractor_CHANGELOG_autotoc_md22604}

\begin{DoxyItemize}
\item Now running on selenium 2.\+24. Requires updating Web\+Driver\+JS and the selenium standalone binary.
\item The protractor runner now publishes {\ttfamily protractor} to the global namespace and sets up the Jasmine-\/\+Web\+Driver adapter. Tests run with this should no longer include
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{// var protractor = require('protractor'); // No longer needed!}
\DoxyCodeLine{// require('protractor/jasminewd'); // No longer needed!}
\DoxyCodeLine{}
\DoxyCodeLine{var ptor = protractor.getInstance(); // This should just work now. }

\end{DoxyCode}
 