Protractor: рдПрд▓рд┐рдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдиреЛрдб 8 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЬреВрди 2017  ┬╖  65рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/protractor

рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

  • рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг: 8.0.0
  • рдЪрд╛рдВрджрд╛ рд╕рдВрд╕реНрдХрд░рдг: 5.1.2
  • рдХреЛрдгреАрдп рд╕рдВрд╕реНрдХрд░рдг: n/a
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдУрдВ): Chrome / chromedriver 2.29.0
  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг Mac Sierra 10.12.5
  • рдЖрдкрдХреА рдЪрд╛рдВрджрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ n/a

рдиреЛрдб v8.0.0 рдФрд░ npm v5.0.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрддрд░ рдкрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ webdriver-manager update рдЪрд▓рд╛рдирд╛, рдореИрдВ protractor --elementExplorer рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ:

protractor --elementExplorer
(node:76684) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[11:04:10] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
[11:04:11] I/protractor -
[11:04:11] I/protractor - ------- Element Explorer -------
[11:04:11] I/protractor - Starting WebDriver debugger in a child process. Element Explorer is still beta, please report issues at github.com/angular/protractor
[11:04:11] I/protractor -
[11:04:11] I/protractor - Type <tab> to see a list of locator strategies.
[11:04:11] I/protractor - Use the `list` helper function to find elements by strategy:
[11:04:11] I/protractor -   e.g., list(by.binding('')) gets all bindings.
[11:04:11] I/protractor -
module.js:487
    throw err;
    ^

Error: Cannot find module '_debugger'
    at Function.Module._resolveFilename (module.js:485:15)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/protractor/built/debugger/debuggerCommons.js:1:82)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)

рдЕрдЧрд░ рдореИрдВ рд╡рд╛рдкрд╕ рдиреЛрдб 7.10.0 рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред

PRs plz! needs investigation

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрдпрд╛ рдЯреАрдо рдХреА рдУрд░ рд╕реЗ рдирд┐рд░реАрдХреНрд╖рдг рдПрдкреАрдЖрдИ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?

рд╕рднреА 65 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдиреЛрдб 8 рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдпрд╣рд╛рдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реЛрдЧрд╛!

_debugger рдФрд░ рд▓реАрдЧреЗрд╕реА CLI рдбрд┐рдмрдЧрд░ рдХреЛ рдиреЛрдб 8 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: https://github.com/nodejs/node/commit/90476ac6ee

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдХреНрдпрд╛ рд╣рдо рдХреГрдкрдпрд╛ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Node 8 рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдпреЛрдЬрдирд╛рдПрдБ рд╣реИрдВ? :)

рдЕрдХреНрдЯреВрдмрд░ рдореЗрдВ рдПрд▓рдЯреАрдПрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдб v8 рд╕реЗрдЯ рдХреЗ рд╕рд╛рде, рд╢рд╛рдпрдж рд╣рдореЗрдВ рдПрдХ рдЕрдкрдбреЗрдЯ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ?

https://github.com/nodejs/LTS#lts -schedule1

https://nodejs.org/en/docs/guides/debugging-getting-started/#legacy -debugger рдХреЗ рдЕрдиреБрд╕рд╛рд░,
рдиреЛрдб.рдЬреЗрдПрд╕ рдЯреАрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирдП рдирд┐рд░реАрдХреНрд╖рдг рдПрдкреАрдЖрдИ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд░рд╣реА рд╣реИред

рдХреНрдпрд╛ рдЯреАрдо рдХреА рдУрд░ рд╕реЗ рдирд┐рд░реАрдХреНрд╖рдг рдПрдкреАрдЖрдИ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?

рд╡рд╣реА рддреНрд░реБрдЯрд┐ https://github.com/node-inspector/node-inspector/issues/1025#issuecomment -339202842
4 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА

рд╕рд╛рде рд╣реА https://stackoverflow.com/questions/44662442/node-inspector-not-starting

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдкрд░рд┐рд╡рд░реНрддрди рдбреАрдмрдЧрд░ рдХреЙрдордиреНрд╕.рдЬреЗрдПрд╕ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ

require('_debugger'); рдмрдЬрд╛рдп рдЗрд╕реЗ require('inspector'); ( рдбреЙрдХреНрд╕ here ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд┐рд░ рдЖрдк рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╕рддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП session.post рдФрд░ Chrome DevTools рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдорд┐рд▓рдиреЗ рдкрд░ рдкреАрдЖрд░ рдореЗрдВ рджрд░рд╛рд░ рдЖ рдЬрд╛рдПрдЧреАред

@phenomnomnominal рдЕрд░реЗ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рдХреНрдпрд╛ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдм рдЙрдкрд▓рдмреНрдз рд╣реИрдВ? рдЪреВрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЗрддрдиреА рдЙрдкрдпреЛрдЧреА рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЗрддрдиреА рдЧрддрд┐ рджреЗрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рдж!

@phenomnomnominal рдирдорд╕реНрддреЗ, рд╣рдо рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдиреЛрдб 8.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрдкрдХреА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рд╣реИ?

рдХреЗрд╡рд▓ рд╡рд╣реА рдЬреЛ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдЖрдЬ рд╢рд╛рдо рдЙрд╕ рдкрд░ рджрд░рд╛рд░ рдбрд╛рд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рдерд╛ред

@phenomnomnominal рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

@phenomnomnominal рд╣рд╛рдп, рдЕрдм рддрдХ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдореИрдВрдиреЗ рдЬрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖ рд░рд╣реА рдереАрдВ (рдХреЛрдИ рд╕реБрдЭрд╛рд╡?) рдореЗрд░реЗ рдкрд╛рд╕ рдордВрдЧрд▓рд╡рд╛рд░ рдХреА рд░рд╛рдд рдХреБрдЫ рдФрд░ рд╕рдордп рд╣реЛрдЧрд╛ред рдирдпрд╛ рдПрдкреАрдЖрдИ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИред

рдард┐рдХ рд╣реИрдБ рдмрд╣реБрдд рдмрд╣реБрдд рд╢реБрдХреНрд░рд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рд╕реЛрдорд╡рд╛рд░ рдХреЗ рдмрд╛рдж рдХреБрдЫ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рдж рднреА рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░ рд╕рдХреВрдВред

рдореБрдЭреЗ рдорд┐рд▓ рдЧрдпрд╛... рдХрд╣реАрдВ? рдбреАрдмрдЧрд░ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЙрддрдирд╛ рд╕реАрдзрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рдЖрд╢рд╛ рдХреА рдереАред @qiyigg рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рджреЗрдЦрдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛?

рдореИрдВ рдЖрдЬ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛, рдзрдиреНрдпрд╡рд╛рдж!

рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдЬ рд╢рд╛рдо рдХреЛ рднреА рдХреБрдЫ рдФрд░ рд╕рдордп рд╣реЛрдЧрд╛, рд╣рдо рдмрд╛рдж рдореЗрдВ рдиреЛрдЯреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ, рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ? рдпрд╣ рдЕрднреА рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдбрд┐рдмрдЧрд░/рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдиреЛрдб 8 рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

  1. рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ рдбрд┐рдмрдЧрд░/рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛; рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореВрд▓ рдПрд╕рд┐рдВрдХ/рдиреЛрдб 8 рдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИ) рдФрд░ рдЕрдВрддрддрдГ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  2. рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдХрд╛рд░рдг 1 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред
  3. рд╣рдо рдореВрд▓ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдФрд░ рдХреНрд░реЛрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЛрдб 8 рдХреЗ рд▓рд┐рдП рдирдП рдбрд┐рдмрдЧрд┐рдВрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдореВрд▓ рдбреАрдмрдЧрд░ рд╕реЗ рдмреЗрд╣рддрд░ рдЕрдиреБрднрд╡ рджреЗрдЧрд╛ред
  4. @phenomnomnominal рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдИрдЯреАрдП рд╣реИ? рдЬрд╣рд╛рдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣рд╛рдВ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛-рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ e2e рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдЬрд╛рдиреЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдЧрд░ рдЗрд╕рдХреЗ рдмрд╛рд╣рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

@рдХреЗрд▓реАрдЖрд░-рдПрд╕рдЯреАрд╕реАрдпреВ
рдирдорд╕реНрддреЗ,
рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг <8 рдХреЗ рд▓рд┐рдП, рдЖрдк рдореВрд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛/рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг> = 8 рдХреЗ рд▓рд┐рдП, рдЖрдк рдирдИ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП Node.js рджреЗрд╢реА async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рддрд╛рдХрд┐ рд╣рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдкреБрд░рд╛рдиреЗ рдбреАрдмрдЧрд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ), рдФрд░ рдХреНрд░реЛрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ( рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдиреЛрдб рдбреАрдмрдЧрд░) рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рджреЗрд╢реА рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдФрд░ рдХреНрд░реЛрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ
рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдЕрдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ
рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓реЗрдЧреА

@qiyigg ElementExplorer рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@monkpit рдпрд╣ рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ рдиреЛрдб 8 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдХреНрд░реЛрдо рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛ред

@qiyigg рдареАрдХ рд╣реИ, рдЪреВрдВрдХрд┐

рд╕рдорд╛рдзрд╛рди рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ "рдЖрдк async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдорд┐рд╢реНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ"ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдкреНрд░рддрд┐ рдкрд░реАрдХреНрд╖рдг рдХреМрди рд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓реЗрдирд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рднреА рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред

@ рдЙрд░рд┐рдпреНрдпрд╛рд╣-рдЖрд░реЛрд╣реА
рд╣рд╛рдВ, рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдВрддрддрдГ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдмреЗрд╣рддрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рддрд░рд╣ рд╕реЗ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдирдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред

@qiyigg рдХреНрдпрд╛

рдЙрди рджреЛ рд▓рд┐рдВрдХ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдЕрдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ рд╢реАрд░реНрд╖рдХ рдкреНрд░рджрд╛рди рдХреА рдереА рдФрд░
рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рджреВрд╕рд░рд╛ рд╕рдВрднрд╡рддрдГ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо рджрд░ рдХрджрдо рдЕрдзрд┐рдХ рд╣реИред

рдиреЛрдб 8 рдкрд░ browser.pause() рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рджред

рдореИрдВрдиреЗ рдбрд┐рд╕реЗрдмрд▓реНрдб рдХрдВрдЯреНрд░реЛрд▓ рдлреНрд▓реЛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ред

node --inspect-brk bin/protractor <config_file> рдЪрд▓рд╛рдиреЗ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ node inspect $(which protractor) <config_file> рдмрд╛рдж debug> cont рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ browser.pause() рдмрд░рд╛рдмрд░ рд╣реИред

рдпрд╛рдиреА debugger . рдХреЗ рд╕реНрдерд╛рди рдкрд░ browser.pause()

рдмрд╕ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЛрдбрдмреЗрд╕ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕рднреА "async" рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░реЙрдорд┐рд╕ рдЪреЗрдирд┐рдВрдЧ рд░рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЗрд╕ рддрд░рд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рд╕рдХреНрд╖рдо рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдзрдиреНрдпрд╡рд╛рдж !

рдкреНрд░реЙрдорд┐рд╕ рдЪреЗрдирд┐рдВрдЧ рдХрд╛рдо рдХрд░реЗрдЧреА рдЪрд╛рд╣реЗ рдХрдВрдЯреНрд░реЛрд▓ рдлреНрд▓реЛ рд╕рдХреНрд╖рдо рд╣реЛ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА-рдХрднреА рдПрдХ рддрд░рд╣ рд╕реЗ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдПрд╕рд┐рдВрдХреНрд╕ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣реЗрдВ/рдХрд┐рд╕реА рджрд┐рди рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ?
рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЕрднреА рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛрдВ, рдирдП рдкрд░реАрдХреНрд╖рдг/рд░реВрдкрд╛рдВрддрд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЛ рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбрд╛рд▓реЗрдВ рдЬреЛ control_flow рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рддрд╛ рд╣реИ

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрд╕рд┐рдВрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдЙрди рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рддреЛрдбрд╝ рджреЗрдВрдЧреЗ рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдПрд╕рд┐рдВрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕рдВрдХреЗрдд: рдП рд▓реЙрдЯ)ред рдФрд░ рдЕрдЧрд░ рд╣рдо рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдг рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛рддреЗ рд╣реИрдВред
рддреЛ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╛ рддреЛ рд╣рдо рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪреЗрдирд┐рдВрдЧ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдпрд╛ рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрдмреЗрд▓ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕ рддрд░рд╣ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ: https://stackoverflow.com/questions/ 28708975/transpile-async-await-proposal-with-babel-js ?), рддрд╛рдХрд┐ рд╣рдо async/wait рд▓рд┐рдЦ рд╕рдХреЗрдВ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ рдЬрд┐рд╕реЗ рдпрд╛ рддреЛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд┐рдирд╛ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реАрдбрдореА рдкрд░ рдмрдбрд╝реЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкрде рджреЗрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ ...

рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЯреАрдо рд╕реЗ рдмрд╛рдд рдХреА рд╣реИ рдЬрд┐рд╕рдиреЗ рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕ рдХреЛ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╕реВрдХреНрд╖реНрдо рдмрдЧ рдФрд░ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдкреЗрд╢ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рдмрд░реНрддрдиреЛрдВ рдХреЛ рд╡рд╛рджрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред
рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдмрд░реНрддрдиреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЕрд▓рдЧ рдЬреЛрдЦрд┐рдо рд╣реЛрдЧрд╛
рд╣рдо рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЯреВрд▓ рд▓рд┐рдЦрдиреЗ рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯреВрд▓ рд╢рд╛рдпрдж рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рд╡реИрд╕реЗ рднреА, рд╣рдо рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рд╡рд╛рд╕рди рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХреБрдЫ рдкреНрд░рд╡рд╛рд╕рди рд╕рд▓рд╛рд╣ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдРрд╕рд╛ рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ рд╣реИ
рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджрд╛ рдмрдирд╛рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛
рдмрдбрд╝реЗ рдХреЛрдбрдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рд▓реЛрдЧ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд▓реЗ 16 рдЬрдирд╡рд░реАред 2018 19:58, "рдХреНрдпреВрдИрдЖрдИ" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдПрдХ ├йcrit :

рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЯреАрдо рд╕реЗ рдмрд╛рдд рдХреА рд╣реИ рдЬрд┐рд╕рдиреЗ рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕ рдХреЛ рдпрд╣рд╛рдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ
рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛.
рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╕реВрдХреНрд╖реНрдо рдмрдЧ рдФрд░ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдкреЗрд╢ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рд╡реЗ
рд╡рд╛рджрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдмрд░реНрддрдиреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред
рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдмрд░реНрддрдиреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ред рдореИрдВ
рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╣реЛрдЧрд╛
рдХреБрдЫ рд╡рд┐рдЪрд▓рди рдЬреЛрдЦрд┐рдо рд╣реИ
рд╣рдо рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЯреВрд▓ рд▓рд┐рдЦрдиреЗ рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди
рдЙрдкрдХрд░рдг рд╢рд╛рдпрдж рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рд╡реИрд╕реЗ рднреА, рд╣рдо рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рд╡рд╛рд╕рди рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╣реАрдВ рдкреНрд░рд╡рд╛рд╕ рд╕рд▓рд╛рд╣ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/angular/protractor/issues/4307#issuecomment-358068096 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AHHOgiLEdFS-xZVcOKmO1EB-CID53cryks5tLPFagaJpZM4NtM1n
.

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ! рдХреЛрдИ рдЙрдкрд╛рдп рдореМрдЬреВрдж рд╣реИ?

protractor - 5.2.2
nodejs - 9.3
protractor --elementExplorer
(node:72438) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[19:15:43] I/local - Starting selenium standalone server...
[19:15:44] I/local - Selenium standalone server started at http://172.29.148.101:58279/wd/hub
[19:15:45] I/protractor -
[19:15:45] I/protractor - ------- Element Explorer -------
[19:15:45] I/protractor - Starting WebDriver debugger in a child process. Element Explorer is still beta, please report issues at github.com/angular/protractor
[19:15:45] I/protractor -
[19:15:45] I/protractor - Type <tab> to see a list of locator strategies.
[19:15:45] I/protractor - Use the `list` helper function to find elements by strategy:
[19:15:45] I/protractor -   e.g., list(by.binding('')) gets all bindings.
[19:15:45] I/protractor -
module.js:557
    throw err;
    ^

Error: Cannot find module '_debugger'
    at Function.Module._resolveFilename (module.js:555:15)
    at Function.Module._load (module.js:482:25)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/protractor/built/debugger/debuggerCommons.js:1:82)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
[19:15:45] I/local - Shutting down selenium standalone server.
MB-219751:~ olekh$ 

рд╕рд╛рде рд╣реА Error: Cannot find module '_debugger' , OSX рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рдорд╛рдорд▓рд╛ рдХрд░реАрдм рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЦреБрд▓рд╛ рд╣реИред рдЕрднреА рднреА рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реИ?

@ajklotz рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдиреЛрдб 7 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рддрддреНрд╡ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рджрд░реНрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

@ajklotz @monkpit @mraible рдпрджрд┐ рдЖрдк рдиреЛрдб 8 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

  1. рдпрд╣ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ "рдкреНрд░реЛрдЯреЗрдХреНрдЯрд░: рдП рдиреНрдпреВ рд╣реЛрдк" https://youtu.be/6aPfHrSl0Qk?t=1051 , рдЦрд╛рд╕рдХрд░ 17:31 рдХреЗ рдЖрд╕рдкрд╛рд╕
  2. рдиреЛрдб 8 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ
  3. ES2017 async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ: https://github.com/angular/protractor/blob/master/docs/async-await.md
  4. рдЕрдкрдиреЗ protractor.conf.js . рдореЗрдВ SELENIUM_PROMISE_MANAGER: false, рдЬреЛрдбрд╝реЗрдВ
  5. рдирдП debugger рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: https://github.com/angular/protractor/blob/master/docs/debugging.md#disabled -control-flow

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@ajklotz @monkpit @mraible рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ async/ await рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛: https://github.com/buildbot/buildbot/pull/4074/files

рдХреБрдЫ рднреА рдЬреЛ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЖрдк рдЙрд╕рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ await рдЪрд┐рдкрдХрд╛ рджреЗрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:

  • .click()
  • .browser.wait()
  • .browser.get()
  • .getText()

рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╛рд╕ await рдХреЙрд▓ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рдордиреЗ async рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ async рд╕рд╛рде рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ await рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@rodrigc рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХреНрд╖реЗрддреНрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ, protractor --elementExplorer рддрдм рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрдм рддрдХ рдЖрдк рдиреЛрдб 7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ async/await рдЬреИрд╕реА рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╡реИрд╕реЗ рднреА рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рд╕реНрдЯреЙрдк-рдЧреИрдк рдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрд╡реИрдк рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдЙрд╕ рд╢реИрд▓реА рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

@monkpit рд╣рд╛рдБ рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИрдВред рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрди рдкрд░: https://github.com/angular/protractor/blob/master/lib/debugger/debuggerCommons.js#L1 , _debugger рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдиреЛрдб 8 рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ debuggerCommons.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдЪреАрдЬрд╝ рдиреЛрдб8 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА, рдЬрд┐рд╕рдореЗрдВ elementExplorer ред

рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдиреЛрдб 8 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдВрдЬреА async/await рдФрд░ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ: https://github.com/angular/protractor/blob/master/docs/ рдбрд┐рдмрдЧрд┐рдВрдЧ.рдПрдордбреА

рдкреБрд░рд╛рдиреА рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рд╛рдордЧреНрд░реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред

рдпрд╛ рддреЛ рдпрд╣ рдареАрдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ (рдпрд╣ рдареАрдХ рд╣реИ, рдореИрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ) рдпрд╛ рдЗрд╕реЗ рдиреЛрдб 8+ (рдпрд╣ рднреА рдареАрдХ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

@monkpit

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░ @qiyigg рдХреА рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред

рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдбрд┐рдмрдЧрд░/рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдиреЛрдб 8 рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛...

рдЬрдм рдореИрдВрдиреЗ рдЙрдирд╕реЗ рдмрд╛рдд рдХреА рддреЛ рдореИрдВрдиреЗ @qiyigg рд╕реЗ рдЬреЛ рдХреБрдЫ рд╕реБрдирд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдЯреАрдо рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдзреНрдпрд╛рди _Protractor test_ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдкрд░ рдкрдбрд╝рд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЕрднреА рднреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИред

@qiyigg рдореИрдВрдиреЗ рдХреНрд░реЛрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдФрд░ рдиреЛрдб debugger рд╕рд╛рде рдирдП

рдХреНрдпрд╛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдЯреАрдо рдкреБрд░рд╛рдиреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬреЛ debuggerCommon.js рдХрд╛ рдЙрдкрдпреЛрдЧ DEPRECATED рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реИ? рдореИрдВ @monkpit рд╕реЗ рд╕рд╣рдордд

рдпрджрд┐ рдЖрдк рдбрд┐рдмрдЧрд┐рдВрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдбрд┐рдмрдЧрд░ рдиреЛрдб 8 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
https://github.com/angular/protractor/blob/master/docs/debugging.md#enabled -control-flow
"рдиреЛрдЯ: рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ рдбрд┐рдмрдЧрд░ рдФрд░ рдПрд▓рд┐рдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ Node.js 8+ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ"

рдПрдХ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ: рд╣рд░ рдХреЛрдИ рдиреЛрдб 8+ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣рдо рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ рдХрд┐ рдбрд┐рдмрдЧрд░ рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рднреА рдХреЛ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдРрд╕рд╛ Google рдХреЗ рдЕрдВрджрд░ рдХрд░реЗрдВрдЧреЗ)ред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдиреЛрдб 8+ рдФрд░ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдХрдИ рд▓рд╛рдн рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдЕрдВрддрддрдГ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рд╣рдо Google рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЯреВрд▓) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡ рдЬрдорд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрдВрддрддрдГ Google рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рднреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХреЗрдВ: рддрддреНрд╡ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░/рдбреАрдмрдЧрд░ рдиреЛрдб 8+ рдХреЗ рд▓рд┐рдП "рддреНрд░реБрдЯрд┐: рдореЙрдбреНрдпреВрд▓ '_debugger' рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛" рдХреЗ рдмрдЬрд╛рдп рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдПрдХ рдкреАрдЖрд░ рдмрд╣реБрдд рд╣реЛрдЧрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ред

@qiyigg рдореИрдВ рдЙрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдмреЛрд▓реНрдб рдФрд░ ALL CAPS рдореЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ ред рдЙрд╕ рдкреГрд╖реНрда рдкрд░ рдкрдХрдбрд╝рдирд╛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢рдмреНрдж рд╣реИрдВред

рдореИрдВ рдирдП рдбреАрдмрдЧрд░ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрд╢ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓рд┐рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рддрддреНрд╡ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ (рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рдЖрдпрд╛) рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмрдбрд╝реА рдЬреАрдд рд╣реИред

@qiyigg рдореИрдВ рдПрдХ рдРрд╕реА рдХрдВрдкрдиреА рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдмрдбрд╝реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдкрд┐рдВрдЯрд░ рдмрдирд╛рддреА рд╣реИред рдЪреВрдБрдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рднреА UI рдХреЛ рдПрдВрдЧреБрд▓рд░ (рд╣реБрд░реНрд░реЗ!) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ UI E2E рдкрд░реАрдХреНрд╖рдгреЛрдВ (рд╣реБрд░реНрд░реЗ) рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрди E2E рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдВрдб рдЯреВ рдПрдВрдб рдЯреЗрд╕реНрдЯ рднреА рд╣реИрдВ рдЬреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рдирд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлрд╝реНрдЯ рдЯреАрдПрдлрдПрд╕ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреАрдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдбреАрдПрд╕рдПрд▓ рдЙрди рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рдЕрдкрдиреЗ рдпреВрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ (рдЗрд╕рд▓рд┐рдП рдПрд▓рд┐рдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдЦреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рддрдХ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛, рдЖрдк рдХрд╣реЗрдВрдЧреЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдирдореЗрдВ рд╕реЗ рд╣рдЬрд╛рд░реЛрдВ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдФрд░ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ" рдЪрд▓рддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдмрд╛рддрдЪреАрдд рд╕реЗ рдЬреЛ рдмрдирд╛рддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рддрддреНрд╡ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЛ рдирдП рдиреЛрдб рдХреЗ рд╕рд╛рде рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдХреЛрдгреАрдп рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдиреЛрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рдЕрдЪрд╛рдирдХ рд╣рдорд╛рд░рд╛ рдкреВрд░рд╛ рдЯреЗрд╕реНрдЯ рдмреЗрд╕ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрди рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рджреВрд░ рд╕реЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрдорд╛рдВрдб рдбрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛? рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ "рдПрдХ рдкрд░реАрдХреНрд╖рдг" рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ "рдбреАрдмрдЧрд░" рдХрд╣рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реАрдзреЗ рдореЗрд░реЗ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдХрдорд╛рдВрдб рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЕрдЧрд▓реЗ "рдбреАрдмрдЧрд░" рдХреЙрд▓ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рд╢рд╛рдпрдж рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ рджреМрдбрд╝рдирд╛ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓реВрдк рдореЗрдВред

рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдереЗ? рд╡реЗ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ? рдпрд╛ рдореИрдВ рдмрд╕ рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдБ ... рдореЗрд░реЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ/рдХреЛрдб рдореЗрдВ рдбреАрдмрдЧрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрдиреЗ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдЕрд▓рдЧ рд╣реИрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреБрдЫ рддрддреНрд╡ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╣реИ рдЬреЛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :)

рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рд╕рд┐рд╕реНрдЯрдо рдкрд░реАрдХреНрд╖рдг рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддрд╛ рд╣реВрдВ (рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ):

jasmine.DEFAULT_TIMEOUT_INTERVAL = 3600000; // arbitrary large timeout
(global as any).systemTestsDone = new CompletablePromise<void>();

describe('TestHelper', () => {
  it('should provide a way to interactively run tests', async () => {
    await (global as any).systemTestsDone;
  });
});
node --inspect .\node_modules\protractor\bin\protractor .\systemTests\protractor.conf.js

рдпрд╣ рдкрд░реАрдХреНрд╖рдг рддрдм рдЪрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ (рд╕реА #) рдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдЪрд╢реНрдореЗ рдФрд░ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдкреБрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмреНрд░рд┐рдЬ рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЖрдЦрд┐рд░реА рдХрдорд╛рдВрдб рдЬреЛ рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рднреЗрдЬрддрд╛ рд╣реВрдВ рд╡рд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИ

global.systemTestsDone.complete()

рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреВрд░рд╛ рд╣реЛ рд╕рдХреЗред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрдпрд╛рдирдХ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдЬреАрдм рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдПрдХ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдореЛрдб рдореЗрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╕рдВрдкреВрд░реНрдг devtools рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЪрд▓рддреЗ рд╣реИрдВ рддреЛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд░реЛрдо рдпрд╛ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХреЗ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ "рдПрд▓рд┐рдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░" рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВред

@vikerman рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рд╕рдВрднрд╛рд▓реЗрдЧрд╛ ред

@vikerman рдХреНрдпрд╛ рдореБрдЭреЗ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ рдореЗрдВ рдХреНрдпрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдЪреВрдВрдХрд┐ --elementExplorer рдЕрдм рд╣рд╛рд▓ рдХреЗ рдиреЛрдб.рдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ) рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдХрд▓реНрдкрдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдореИрдиреНрдпреБрдЕрд▓ рд╡рд┐рдзрд┐ рдХреЙрд▓ рддрдХ рдЪрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИ ( protractor.exit() рдЬреИрд╕рд╛ рдХреБрдЫ?) рд╣рдо рдЗрд╕ рдореЛрдб рдореЗрдВ node --inspect рд╕рд╛рде рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд╣рд░реА рдЯреЗрд╕реНрдЯ рд░рдирд░ рдХреЛ рдбреАрдмрдЧрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдиреЛрдб 7.10.1 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдПрд▓рд┐рдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЛ рдлрд╛рдпрд░ рдХрд░рддрд╛ рд╣реВрдВред
рдереЛрдбрд╝рд╛ рд▓рдВрдЧрдбрд╝рд╛ рдХрд╛рдордХрд╛рдЬ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдб v6 рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдореИрдВ рдЕрдкрдирд╛ рдХреЛрдгреАрдп 6 рдРрдк рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдиреЛрдб 6 рдХреЛрдгреАрдп 6+ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдгреАрдп рдЕрдм рдиреЛрдб> = 8.9.0 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореИрдВ рдиреЛрдб рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдЖрд░рдИрдкреАрдПрд▓ рдбрдмреНрд▓реНрдпреВ/рдУ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
https://github.com/angular/protractor/blob/master/docs/debugging.md#enabled -control-flow

рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдЖ рд░рд╣реА рд╣реИ

рддреЛ рдХреНрдпрд╛ рдпрд╣ browser.pause() / browser.debugger() рдХреЗ рд▓рд┐рдП рдЕрдВрдд рд╣реИ? рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рджреВрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдиреЛрдб рдбреАрдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
https://github.com/angular/protractor/blob/master/docs/debugging.md

рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг 7.10.1 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП browser.pause() рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдПрд╕рд┐рдВрдХ/рд╡реЗрдЯ рдЖрдЧреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рдФрд░ рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕реНрдЯреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣рдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд▓рд┐рдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреА
рдиреЛрдбрдЬ 8+ рдХреЗ рд▓рд┐рдП рджреА рдЧрдИ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде, рдХрдВрд╕реЛрд▓ рд╕реЗ рдХрдорд╛рдВрдб рд╡рд╛рджреЛрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЛ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдЙрдВрдЯрд░-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд▓реЗрдЦрди рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╕рдордп рдореЗрдВ рдПрдХ рд╕реВрдХреНрд╖реНрдо рд╡реГрджреНрдзрд┐ рд╣реИред рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдг, рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдиреБрдХрд╕рд╛рди (рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░)ред
рдХреНрдпрд╛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдПрд▓реАрдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдлреАрдЪрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

@woppa684 рд╕реБрдЭрд╛рд╡ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж @ woppa684ред рдореИрдВ рд╕рд┐рд░реНрдл 10+ рдиреЛрдб рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдЙрддреНрддрд░-рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИ (рддрд╛рдХрд┐ рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХреЗрдВ)

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реА рдЧрдИрдВ, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧреА:

рд╡рд┐рд╢реЗрд╖ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдбрд┐рдмрдЧ рдпреБрдХреНрддрд┐ - Interactive.e2e.ts

import { LoginPage } from './src/pages/login.po';
import { AppPage } from './src/pages/app.po';
import { SwitchProfileSideSheet } from './src/side-sheets/switch-profile-side-sheet.po';
import { sel } from '../src/testing/get-component';

const login = new LoginPage();
const app = new AppPage();
const switchProfileSideSheet = new SwitchProfileSideSheet();

// add my own page objects to the global object so I can use them interactively.
global['sel'] = sel;
global['po'] = {
  login,
  app,
  switchProfileSideSheet,
};

(global as any).systemTestsDone = new Promise(function(_resolve, _reject) {
  global['finishInteractiveDebug'] = _resolve;
});

describe('TestHelper', () => {
  it('should provide a way to interactively run tests', async () => {
    await (global as any).systemTestsDone;
  });
});

рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди

    "e2e-interactive": "node --experimental-repl-await --inspect-brk ./node_modules/.bin/protractor ./e2e/protractor.interactive.conf",

protractor.interactive.conf.js

// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

// standard protractor config
const baseConfig = require('./protractor.conf');
const configCopy = Object.assign({}, baseConfig.config);

const oneDayInMilliSeconds = 1000 * 60 * 60 * 24;
// set timeout to a huge number
// so it's not an issue when we pause in the debugger
configCopy.allScriptsTimeout = oneDayInMilliSeconds;
configCopy.jasmineNodeOpts.defaultTimeoutInterval = oneDayInMilliSeconds;
// just load our interactive specs
configCopy.specs = ['./interactive.e2e.ts'];

console.log('interactive config', configCopy);
exports.config = configCopy;

рдореИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ browser.sleep(100000) рдХреЗ рдмрдЬрд╛рдп browser.pause()

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

tmeneau picture tmeneau  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andyman3693 picture andyman3693  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vishalshivnath picture vishalshivnath  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

smarts picture smarts  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

davidkarlsen picture davidkarlsen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ