Protractor: рд╢реИрдбреЛрдбреЙрдо рд╕рдорд░реНрдерди рдЕрдиреБрд░реЛрдз

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реИрдбреЛрдбреЙрдо рд╕рдорд░реНрдерди рдЕрднреА рднреА рдЧрд╛рдпрдм рд╣реИ:

рдкреГрд╖реНрдарднреВрдорд┐

рдореИрдВ рдХреБрдЫ рдкреЙрд▓рд┐рдорд░ 2 рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╢реИрдбреЛрдбреЛрдо v1 рдпреБрдХреНрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ e2e рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ shadowRoot s рдХреЗ рдЕрдВрджрд░ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред deepCss рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ, by.deepCss by.css рд╕рд╛рде рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджрд┐рдП рдЧрдП CSS рдЪрдпрдирдХрд░реНрддрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ * /deep/ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, /deep/ рд▓рдЧрддрд╛ рд╣реИ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдмрд╣рд┐рд╖реНрдХреГрддред

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

  • рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг: v6.10.3
  • рдЪрд╛рдВрджрд╛ рд╕рдВрд╕реНрдХрд░рдг: v5.1.2
  • рдХреЛрдгреАрдп рд╕рдВрд╕реНрдХрд░рдг: v4.2.4
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдУрдВ): Chrome
  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг: Ubuntu v16.04.2 AMD64 LTS Xenial

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╣рд┐рдд рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓реЗрдЦреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рд╕рдВрддреБрд╖реНрдЯ рдЙрддреНрддрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛:

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓

рд╡реИрд╕реЗ рднреА, рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рд▓реЛрдХреЗрдЯрд░ рдЬреЛрдбрд╝рдХрд░ рд╢реИрдбреЛрдбреЛрдо рддрддреНрд╡реЛрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдХрд╛рдордХрд╛рдЬ рд╣реИ:

/**
 * Usage:
 *   O  element(by.css_sr('#parentElement #innerElement'))          <=> $('#parentElement #innerElement')
 *   O  element(by.css_sr('#parentElement::sr #innerElement'))      <=> $('#parentElement').shadowRoot.$('#innerElement')
 *   O  element.all(by.css_sr('#parentElement .inner-element'))     <=> $$('#parentElement .inner-element')
 *   O  element.all(by.css_sr('#parentElement::sr .inner-element')) <=> $$('#parentElement').shadowRoot.$$('.inner-element')
 *   O  parentElement.element(by.css_sr('#innerElement'))           <=> parentElement.$('#innerElement')
 *   O  parentElement.element(by.css_sr('::sr #innerElement'))      <=> parentElement.shadowRoot.$('#innerElement')
 *   O  parentElement.all(by.css_sr('.inner-element'))              <=> parentElement.$$('.inner-element')
 *   O  parentElement.all(by.css_sr('::sr .inner-element'))         <=> parentElement.shadowRoot.$$('.inner-element')
 */
by.addLocator('css_sr', (cssSelector: string, opt_parentElement, opt_rootSelector) => {
    let selectors = cssSelector.split('::sr');
    if (selectors.length === 0) {
        return [];
    }

    let shadowDomInUse = (document.head.createShadowRoot || document.head.attachShadow);
    let getShadowRoot  = (el) => ((el && shadowDomInUse) ? el.shadowRoot : el);
    let findAllMatches = (selector: string, targets: any[], firstTry: boolean) => {
        let using, i, matches = [];
        for (i = 0; i < targets.length; ++i) {
            using = (firstTry) ? targets[i] : getShadowRoot(targets[i]);
            if (using) {
                if (selector === '') {
                    matches.push(using);
                } else {
                    Array.prototype.push.apply(matches, using.querySelectorAll(selector));
                }
            }
        }
        return matches;
    };

    let matches = findAllMatches(selectors.shift().trim(), [opt_parentElement || document], true);
    while (selectors.length > 0 && matches.length > 0) {
        matches = findAllMatches(selectors.shift().trim(), matches, false);
    }
    return matches;
});

рдирд┐рд╖реНрдХрд░реНрд╖

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

рд╢реБрдХреНрд░рд┐рдпрд╛ред

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

рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? рд╣рдо by.shadowRoot рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

@ first87

рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреАрдПрдирдПрдХреНрд╕ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЪрд╛рдВрджрд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк element(by. shadowRoot('#parentElement #innerElement')) рдЬреИрд╕реЗ рдирдП рд▓реЛрдХреЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ

@wswebcreation рдареАрдХ рд╣реИ, рдЕрдЪреНрдЫрд╛ред рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред
рдЖрдк рдЪрдпрдирдХрд░реНрддрд╛ рдХреА рдЗрд╕ рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдмрд╛рдд рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ #parentElement::sr #innerElement рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ #innerElement рдХреА рдЫрд╛рдпрд╛ рдкреЗрдбрд╝ рдХреЗ рдЕрдВрджрд░ #parentElement ?

@ first87

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдФрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд▓реЙрдЧрд┐рдВрдЧ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдВ

@wswebcreation рдореИрдВ рдЕрдкрдиреЗ

рд╣рд╛рдп @ рдлрд░реНрд╕реНрдЯ87 ,

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрджрдо рд╣реИрдВред

@wswebcreation рд╣рд╛рдВ, рдореИрдВрдиреЗ DEVELOPER.md рдЪреЗрдХ рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЧрд╛рдЗрдб рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпреЗ рд╡реЗ рдХрджрдо рд╣реИрдВ рдЬрд┐рди рдкрд░ рдореИрдВ рдЧрдпрд╛:

  • git clone [email protected]:angular/protractor.git
  • cd protractor/
  • git remote add upstream https://github.com/angular/protractor.git
  • git checkout -b feature/shadow-root-locator master рдореЗрд░реА рдЕрдкрдиреА рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
  • npm install
  • рдХрдИ рдХрдорд┐рдЯ рдХрд┐рдП
  • gulp lint рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдб рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ
  • npm start , webdriver-manager start , npm test рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдЕрдм рдореБрдЭреЗ рдЖрдЧреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╣рд╛рдп @ рдлрд░реНрд╕реНрдЯ87 ,

  • рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлреЛрд░реНрдХ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
  • рдлрд┐рд░ рдпрд╣ рдЖрдкрдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред
  • рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдПрдХ рдХреНрд▓реЛрди рдХрд░реЗрдВ
  • рдлрд┐рд░ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВ рдФрд░ "рдкреАрдЖрд░ рдмрдирд╛рдПрдВ" -рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдпрд╣ рдЯреНрд░рд┐рдХ рдХрд╛рдо рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП

@wswebcreation рдареАрдХ рд╣реИ, рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@wswebcreation рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдкреАрдЖрд░ #4392 рдмрдирд╛рдпрд╛ рд╣реИред

@ first87 рдЯреАрдПрдирдПрдХреНрд╕ !!

рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? рд╣рдо by.shadowRoot рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдореБрдЭреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛: https://github.com/angular/protractor/pull/4392#issuecomment -359814654

@ first87 рдореИрдВрдиреЗ рдЕрдкрдиреЗ e2e рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рдирдП рд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдореИрдВ рдЫрд╛рдпрд╛ рдбреЛрдо рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдБред

рдкрд░реНрдпрд╛рд╡рд░рдг: рдкреЙрд▓рд┐рдорд░ рд╡реЗрдм рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдгреАрдп (v5) рдЕрдиреБрдкреНрд░рдпреЛрдЧред e2e рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рдВрджрд╛ред

рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ: 1.6.4
рдиреЛрдб: 6.10.0
рдХреЛрдгреАрдп: 5.2.0
@ рдХреЛрдгреАрдп/рдХреНрд▓реА: 1.6.4
рдЯрд╛рдЗрдкрдкреНрд░рддрд┐: 2.5.3
рдиреАрдЪреЗ рдХреНрд░реЛрдо рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдореЗрд░рд╛ рдкреЙрд▓реАрдорд░ рд╡реЗрдм рдХрдВрдкреЛрдиреЗрдВрдЯ рд╢реИрдбреЛ рд░реВрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдХрд╕реНрдЯрдо рддрддреНрд╡ рдХреЗ рдЕрдВрджрд░ рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = "рдкрд╛рда" рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЪрд╛рдВрджрд╛ by.css_sr рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрд╕реНрдЯрдо рдмрд╣реБрд▓рдХ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдЗрдирдкреБрдЯ рддрддреНрд╡ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдБред

рд╡рд░ рдкреЙрд▓реАрдорд░рдлрд░реНрд╕реНрдЯрдирд╛рдо = рдПрд▓рд┐рдореЗрдВрдЯ (by.className('polyFName'));
рд╡рд░ рдЗрдирдкреБрдЯ рдПрд▓реАрдореЗрдВрдЯ = рдкреЙрд▓реАрдорд░рдлрд░реНрд╕реНрдЯрдирд╛рдоред рдПрд▓рд┐рдореЗрдВрдЯ (by.css_sr ('рдЗрдирдкреБрдЯ')); // рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реБрдЖ "рд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛: by.css_sr ("рдЗрдирдкреБрдЯ")"ред

shadowroot

рдореБрдЭреЗ рдЖрдВрддрд░рд┐рдХ рдЗрдирдкреБрдЯ рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдпреВрдЖрдИ рдСрдЯреЛрдореЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░ рд╕рдХреВрдВред
рдкреЙрд▓реАрдорд░рдлрд░реНрд╕реНрдЯрдирд╛рдоред рдПрд▓рд┐рдореЗрдВрдЯ (by.css_sr ('рдЗрдирдкреБрдЯ'))ред рд╕реНрдкрд╖реНрдЯ ();
рдкреЙрд▓реАрдорд░рдлрд░реНрд╕реНрдЯрдирд╛рдо.рдПрд▓рд┐рдореЗрдВрдЯ (by.css_sr ('рдЗрдирдкреБрдЯ')).sendKeys ('рд░рд┐рдЪреА');

рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

@msbasanth рдЖрдк ::sr рд╕реЗ рдЪреВрдХ рдЧрдП рдХреНрдпреЛрдВрдХрд┐ by.css_sr рддрддреНрд╡ рдХреА рдЫрд╛рдпрд╛ рдЬрдбрд╝ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ ~ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ ::sr рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЗ рдЫрд╛рдпрд╛ рдбреЛрдо рдкреЗрдбрд╝ рдореЗрдВ рдЦреЛрджреЗрдЧрд╛
рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЗрдирдкреБрдЯ рддрддреНрд╡ рдЦреЛрдЬрдХ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

var inputElement = polymerFirstName.element(by.css_sr('::sr input'));

рдзрдиреНрдпрд╡рд╛рдж @ first87 рдЗрд╕рдиреЗ рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╣ рд╢реИрдбреЛ рдбреЛрдо рд╕рдкреЛрд░реНрдЯ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдорд┐рд▓реЗрдЧрд╛ред

рдпрд╣ рд╕рд╣реА рд╣реИ! рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдЕрдм рдмрд╣реБрдд рдХрдард┐рди рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдиреЗрд╕реНрдЯреЗрдб рд╢реИрдбреЛ рдбреЛрдо рд╣реИрдВ :( рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

@firstor рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдПрдХреАрдХреГрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ ....

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕ рдкрд░ рдЖрдкрд╕реЗ рдХреБрдЫ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрдмрдХрд┐ рдореИрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ :: sr рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣реА рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рдЬрдм рдореИрдВ title.getText() рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рдЧрд▓рдд" рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЖ рд░рд╣рд╛ рд╣реИред рдиреАрдЪреЗ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВ:

рдЕрдкреЗрдХреНрд╖рд┐рдд ['рд╢реАрд░реНрд╖рдХ'] 'рд╢реАрд░реНрд╖рдХ' рд╣реЛрдирд╛ред

рдореБрдЭреЗ рдЙрд╕ рд╡рд╕реНрддреБ/рд╕рд░рдгреА рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж !!

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЙрдкреЗрдХреНрд╖рд╛ !! рдЗрд╕рдХрд╛ рд╕рдВрджрд░реНрдн рджрд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдЪрд╛рд▓ рдЪрд▓реА https://stackoverflow.com/questions/29478905/protractor-element-gettext-returns-an-object-and-not-string ред рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзрдиреНрдпрд╡рд╛рдж!!

рд╣рд╛рдп @firstor / @msbasanth , рдореИрдВ рдЫрд╛рдпрд╛-рд░реВрдЯ рдбреЛрдо рдореЗрдВ рдореМрдЬреВрдж рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдПрдХ .ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд▓рд╛рдЗрди рдирдВрдмрд░ рдкрд░ рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред 6:
рдХреЛрдб: рд╢реИрдбреЛрдбреЛрдордЗрдирдпреВрдЬ = (рдбреЙрдХреНрдпреВрдореЗрдВрдЯ.рд╣реЗрдб.рдХреНрд░рд┐рдПрдЯрд╢реИрдбреЛрд░реВрдЯ...
рддреНрд░реБрдЯрд┐: рд╕рдВрдкрддреНрддрд┐ 'createShadowRoot' рдкреНрд░рдХрд╛рд░ 'HTMLHeadElement' рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ ред

рдЖрд╡реЗрджрди: рдХреЛрдгреАрдп v7
рдиреЛрдбрдЬреЗрдПрд╕: 6.9.0
рдЯрд╛рдЗрдкрдкреНрд░рддрд┐: 2.3.3
рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░: 5.3.2

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

image

image

@рдлрд░реНрд╕реНрдЯреЛрд░
рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
var searchBar = element(by.css_sr('::sr input'));
var searchButton = element(by.css_sr('::sr i'));

рдореБрдЭреЗ рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ
[11:36:06] рдИ/рд▓реЙрдиреНрдЪрд░ - рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рдЕрдорд╛рдиреНрдп рд▓реЛрдХреЗрдЯрд░

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

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

https://github.com/angular/protractor/pull/4786 рдХреЗ рд╡рд┐рд▓рдп рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?

рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА? рдпрд╣ рдХрдИ рдЪрд╢реНрдореЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд░реЛрдзрдХ рд╣реИ рджреЗрд░ рд╕реЗ (

рд╣реИрд▓реЛ @firstor ,

рдЖрд╡реЗрджрди: рдХреЛрдгреАрдп 8
рдиреЛрдбрдЬреЗрдПрд╕: 12.13.1
рдЯрд╛рдЗрдкрдкреНрд░рддрд┐: 3.5.3
рдЪрд╛рдВрджрд╛ : 5.4.0

рдЖрдкрдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рд╢реИрдбреЛрд░реВрдЯ рдореЗрдВ рддрддреНрд╡ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рд╣рдорд╛рд░реЗ рдлреНрд░рдВрдЯрдПрдВрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдЧрд╣рд░рд╛рдИ рд╕реНрддрд░ рд╣реИрдВ

  • рдкрд╣рд▓рд╛ рд╕реНрддрд░: рдорд╛рдЗрдХреНрд░реЛ рдлреНрд░рдВрдЯрдПрдВрдб рдПрдкреНрд▓реАрдХреЗрд╢рди
  • рджреВрд╕рд░рд╛ рд╕реНрддрд░ : рд╕реВрдХреНрд╖реНрдо рджреГрд╢реНрдпрдкрдЯрд▓ рдШрдЯрдХ
  • рддреАрд╕рд░рд╛ рд╕реНрддрд░: рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рдШрдЯрдХ

Protractor_ShadowRoot-issue

рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ рд╢реИрдбреЛрд░реВрдЯ рд╕реНрддрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИ рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рдирд╣реАрдВред

рдХреЛрдб рд╕реНрд░реЛрдд рдХрд╛ рдЕрд░реНрдХ:

    await expect(element(by.tagName('page-affaire')).isDisplayed());
    await browser.driver.sleep(3000);
    console.log('Page affaire charg├йe');
    var el1 = element(by.tagName('page-affaire'));

    var el2 = el1.element(by.css_sr('::sr rac-card'));
    console.log('rac-card found');

    var el3 = el1.element(by.css_sr('::sr rac-option'));
    console.log('rac-option found');

    var el4 = el1.element(by.css_sr('::sr mat-select')); 
    console.log('rac-card select');

рдкрд░рд┐рдгрд╛рдо рд▓реЙрдЧ:

Jasmine` started
Page affaire charg├йe
rac-card found
rac-option found
rac-card select
S├йlection du type de demande

  cr├йer Affaire
    ├Ч Select type demande
      - NoSuchElementError: No element found using locator: by.css_sr("::sr mat-select")

рд╣рдо рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ ( https://stackoverflow.com/questions/57979981/how-to-check-in-protractor-javescript-in-shadow-dom-if-the-button-is-enabled-o )ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ:

await browser.executeScript("return document.querySelector(\"page-affaire\");").then(function () {
      console.log('page affaire found');
      // browser.sleep(5000);
    });
    await browser.executeScript("return document.querySelector(\"page-affaire\").shadowRoot.querySelector(\"rac-card\");").then(function () {
      console.log('rac card found');
      // browser.sleep(5000);
    });
    await browser.executeScript("return document.querySelector(\"page-affaire\").shadowRoot.querySelector(\"rac-card\").shadowRoot.querySelector(\"rac-option\");").then(function () {
      console.log('rac option found');
      // browser.sleep(5000);
    });
    await browser.executeScript("return document.querySelector(\"page-affaire\").shadowRoot.querySelector(\"rac-card\").shadowRoot.querySelector(\"rac-option\").shadowRoot.querySelector(\"mat-select\").click();").then(function () {
      console.log('Type de Demande cliqu├й');
      browser.sleep(5000);
    });

рдкрд░рд┐рдгрд╛рдо :

Jasmine started
Page affaire charg├йe
rac-card found
rac-option found
rac-card select
S├йlection du type de demande

  cr├йer Affaire
    ├Ч Select type demande
      - NoSuchElementError: No element found using locator: by.css_sr("::sr mat-select")

рдХреНрдпрд╛ рд╢реИрдбреЛрд░реВрдЯ рдбреЗрдкреНрде рд▓рд┐рдорд┐рдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рд╕реАрдорд╛ рд╣реИ?

рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

V1nc3kr0

рд╣реИрд▓реЛ @firstor ,

рдЖрд╡реЗрджрди: рдХреЛрдгреАрдп 8
рдиреЛрдбрдЬреЗрдПрд╕: 12.13.1
рдЯрд╛рдЗрдкрдкреНрд░рддрд┐: 3.5.3
рдЪрд╛рдВрджрд╛ : 5.4.0

рдЖрдкрдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рд╢реИрдбреЛрд░реВрдЯ рдореЗрдВ рддрддреНрд╡ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рд╣рдорд╛рд░реЗ рдлреНрд░рдВрдЯрдПрдВрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдЧрд╣рд░рд╛рдИ рд╕реНрддрд░ рд╣реИрдВ

  • рдкрд╣рд▓рд╛ рд╕реНрддрд░: рдорд╛рдЗрдХреНрд░реЛ рдлреНрд░рдВрдЯрдПрдВрдб рдПрдкреНрд▓реАрдХреЗрд╢рди
  • рджреВрд╕рд░рд╛ рд╕реНрддрд░ : рд╕реВрдХреНрд╖реНрдо рджреГрд╢реНрдпрдкрдЯрд▓ рдШрдЯрдХ
  • рддреАрд╕рд░рд╛ рд╕реНрддрд░: рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рдШрдЯрдХ

Protractor_ShadowRoot-issue

рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ рд╢реИрдбреЛрд░реВрдЯ рд╕реНрддрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИ рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рдирд╣реАрдВред

рдХреЛрдб рд╕реНрд░реЛрдд рдХрд╛ рдЕрд░реНрдХ:

    await expect(element(by.tagName('page-affaire')).isDisplayed());
    await browser.driver.sleep(3000);
    console.log('Page affaire charg├йe');
    var el1 = element(by.tagName('page-affaire'));

    var el2 = el1.element(by.css_sr('::sr rac-card'));
    console.log('rac-card found');

    var el3 = el1.element(by.css_sr('::sr rac-option'));
    console.log('rac-option found');

    var el4 = el1.element(by.css_sr('::sr mat-select')); 
    console.log('rac-card select');

рдкрд░рд┐рдгрд╛рдо рд▓реЙрдЧ:

Jasmine` started
Page affaire charg├йe
rac-card found
rac-option found
rac-card select
S├йlection du type de demande

  cr├йer Affaire
    ├Ч Select type demande
      - NoSuchElementError: No element found using locator: by.css_sr("::sr mat-select")

рд╣рдо рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ ( https://stackoverflow.com/questions/57979981/how-to-check-in-protractor-javescript-in-shadow-dom-if-the-button-is-enabled-o )ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ:

await browser.executeScript("return document.querySelector(\"page-affaire\");").then(function () {
      console.log('page affaire found');
      // browser.sleep(5000);
    });
    await browser.executeScript("return document.querySelector(\"page-affaire\").shadowRoot.querySelector(\"rac-card\");").then(function () {
      console.log('rac card found');
      // browser.sleep(5000);
    });
    await browser.executeScript("return document.querySelector(\"page-affaire\").shadowRoot.querySelector(\"rac-card\").shadowRoot.querySelector(\"rac-option\");").then(function () {
      console.log('rac option found');
      // browser.sleep(5000);
    });
    await browser.executeScript("return document.querySelector(\"page-affaire\").shadowRoot.querySelector(\"rac-card\").shadowRoot.querySelector(\"rac-option\").shadowRoot.querySelector(\"mat-select\").click();").then(function () {
      console.log('Type de Demande cliqu├й');
      browser.sleep(5000);
    });

рдкрд░рд┐рдгрд╛рдо :

Jasmine started
Page affaire charg├йe
rac-card found
rac-option found
rac-card select
S├йlection du type de demande

  cr├йer Affaire
    ├Ч Select type demande
      - NoSuchElementError: No element found using locator: by.css_sr("::sr mat-select")

рдХреНрдпрд╛ рд╢реИрдбреЛрд░реВрдЯ рдбреЗрдкреНрде рд▓рд┐рдорд┐рдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рд╕реАрдорд╛ рд╣реИ?

рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

V1nc3kr0

рдПрдХ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
var el4 = el3 .element(by.css_sr('::sr mat-select'));

@рдлрд░реНрд╕реНрдЯреЛрд░
рдореЗрд░рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реИрдбреЛ рд░реВрдЯреНрд╕ рдХреЗ 10 рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде Polymer.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
RJvlf
рдХреНрдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЫрд╛рдпрд╛ рдЬрдбрд╝реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╢реАрд░реНрд╖ рдиреЛрдб рд╕реЗ рдЕрдВрддрд┐рдо рдЫрд╛рдпрд╛ рдореВрд▓ рддрддреНрд╡ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╣реИрд▓реЛ рджреЛрд╕реНрддреЛрдВ ,
рдореИрдВ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рд▓реЛрдХреЗрдЯрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рд╢реИрдбреЛрдбреЛрдо) рдХреЛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗред
рдореИрдВ рдкреЙрд▓рд┐рдорд░ рд╡реЗрдмрдХрдВрдкреЛрдиреЗрдВрдЯ рдкрд░ рдХреБрдЫ рдпреВрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рд╕рдВрд╕реНрдХрд░рдг: 5.4.2 рдФрд░ рдиреЛрдб v12.13ред

рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП? @ рдлрд░реНрд╕реНрдЯреЛрд░ , @alagappan-qa

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

@рд░реБрдЧрд╛рдмрд╛
onPrepare() рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрддрд░реНрдЧрдд Configuration.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

thx @ рдЕрд▓рдЧрдкреНрдкрди-рдХреНрдпреВрдП, рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ !!

рдирдорд╕реНрддреЗ,

рдХреНрдпрд╛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ protractor.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдФрд░ onPrepare() рд╡рд┐рдзрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?

рдзрдиреНрдпрд╡рд╛рдж,
рд▓рдХреНрд╖реНрдореА

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЕрднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рджреЗрдЦреЗрдВ https://github.com/angular/protractor/pull/4786#issuecomment -607204672 рдФрд░ https://github.com/angular/protractor/pull/4786#issuecomment -607224145

рдЖрдк https://github.com/angular/protractor/pull/4786.patch рдпрд╛ https://github.com/angular/protractor/pull/4786.diff рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдирдорд╕реНрддреЗ,

рдХреНрдпрд╛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ protractor.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдФрд░ onPrepare() рд╡рд┐рдзрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?

рдзрдиреНрдпрд╡рд╛рдж,
рд▓рдХреНрд╖реНрдореА

@ рд▓рд╛рдЦ02
рдЗрд╕ рд▓реЛрдХреЗрдЯрд░ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ

exports.addShadowRootLocator = function () {
    by.addLocator('css_sr', function (
.
.
.
    return matches;
    });
};

рдлрд┐рд░ рдСрдирдкреНрд░реЗрдкреЗрдпрд░ () рд╡рд┐рдзрд┐ рдореЗрдВ

onPrepare: function () {
        // register the shadow root locator, to use it globally
        require('./path/to/file').addShadowRootLocator();
}

>

@рдлрд░реНрд╕реНрдЯреЛрд░
рдореЗрд░рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реИрдбреЛ рд░реВрдЯреНрд╕ рдХреЗ 10 рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде Polymer.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
RJvlf
рдХреНрдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЫрд╛рдпрд╛ рдЬрдбрд╝реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╢реАрд░реНрд╖ рдиреЛрдб рд╕реЗ рдЕрдВрддрд┐рдо рдЫрд╛рдпрд╛ рдореВрд▓ рддрддреНрд╡ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@firstor рдореИрдВ рдЖрдкрдХреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЫрд╛рдпрд╛ рдбреЛрдо рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдиреЗрд╕реНрдЯреЗрдб рдЫрд╛рдпрд╛ рдбреЛрдо рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рджреЛ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА рдХреБрдЫ рддрддреНрд╡реЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛:
рдпрд╣ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдореБрдЭреЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП div рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: div.a-choosen-text:
image

рдореИрдВрдиреЗ рдиреАрдЪреЗ рд▓реЛрдХреЗрдЯрд░ (рдФрд░ рдХрдИ рдЕрдиреНрдп) рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА:
nameOnTheProjectTab = element(by.css_sr('app-dumbledore::sr lit-route::sr app-dashboard::sr app- project:nth-child (1)::sr appkit-panel::sr app-assignee- dropdown::sr appkit-dropdown::sr div.a-choosen-text'));

рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдРрдк-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрдЯрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЬреЛ рднреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╕реНрдерд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЯреИрдм = рддрддреНрд╡ (by.css_sr ('рдРрдк-рдбрдВрдмрд▓рдбреЛрд░ :: рдПрд╕рдЖрд░ рд▓рд┐рдЯ-рд░реВрдЯ :: рдПрд╕рдЖрд░ рдРрдк-рдбреИрд╢рдмреЛрд░реНрдб :: рдПрд╕рдЖрд░ рдРрдк- рдкреНрд░реЛрдЬреЗрдХреНрдЯ: рдПрдирдПрдЪ-рдЪрд╛рдЗрд▓реНрдб (1)'));

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж,
рдордЧрджрд╛

>

@рдлрд░реНрд╕реНрдЯреЛрд░
рдореЗрд░рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реИрдбреЛ рд░реВрдЯреНрд╕ рдХреЗ 10 рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде Polymer.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
RJvlf
рдХреНрдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЫрд╛рдпрд╛ рдЬрдбрд╝реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╢реАрд░реНрд╖ рдиреЛрдб рд╕реЗ рдЕрдВрддрд┐рдо рдЫрд╛рдпрд╛ рдореВрд▓ рддрддреНрд╡ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@firstor рдореИрдВ рдЖрдкрдХреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЫрд╛рдпрд╛ рдбреЛрдо рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдиреЗрд╕реНрдЯреЗрдб рдЫрд╛рдпрд╛ рдбреЛрдо рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рджреЛ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА рдХреБрдЫ рддрддреНрд╡реЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛:
рдпрд╣ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдореБрдЭреЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП div рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: div.a-choosen-text:
image

рдореИрдВрдиреЗ рдиреАрдЪреЗ рд▓реЛрдХреЗрдЯрд░ (рдФрд░ рдХрдИ рдЕрдиреНрдп) рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА:
nameOnTheProjectTab = element(by.css_sr('app-dumbledore::sr lit-route::sr app-dashboard::sr app- project:nth-child (1)::sr appkit-panel::sr app-assignee- dropdown::sr appkit-dropdown::sr div.a-choosen-text'));

рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдРрдк-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрдЯрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЬреЛ рднреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╕реНрдерд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЯреИрдм = рддрддреНрд╡ (by.css_sr ('рдРрдк-рдбрдВрдмрд▓рдбреЛрд░ :: рдПрд╕рдЖрд░ рд▓рд┐рдЯ-рд░реВрдЯ :: рдПрд╕рдЖрд░ рдРрдк-рдбреИрд╢рдмреЛрд░реНрдб :: рдПрд╕рдЖрд░ рдРрдк- рдкреНрд░реЛрдЬреЗрдХреНрдЯ: рдПрдирдПрдЪ-рдЪрд╛рдЗрд▓реНрдб (1)'));

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж,
рдордЧрджрд╛

рд╣рд╛рдп рдордЧрджрд╛,
рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, WebElement рдПрдкрдХрд┐рдЯ-рдкреИрдирд▓ рдХреЗ рддрд╣рдд рдЫрд╛рдпрд╛ рд░реВрдЯ рдХреЛ рдЖрдкрдХреЗ рддрддреНрд╡ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди nameOnTheProjectTab рддрддреНрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рддрддреНрд╡ рд▓реЛрдХреЗрдЯрд░ рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдВ,
nameOnTheProjectTab = element(by.css_sr('app-dumbledore::sr lit-route::sr app-dashboard::sr app- project:nth-child (1)::sr app-assignee-dropdown::sr appkit- dropdown::sr div.a-choosen-text'));

рдУрдПрдордЬреА, рдореБрдЭреЗ рдЕрдм рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреЗ рд╕рднреА рд▓реЛрдХреЗрдЯрд░ рдорд┐рд▓ рдЧрдП рд╣реИрдВ!
рдорджрдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рд╕рд╛рджрд░,
рдордЧрджрд╛

рд╕реЗ: рдЕрд▓рдЧрдкреНрдкрди-рдХреНрдпреВрдП рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рднреЗрдЬрд╛ рдЧрдпрд╛: рд╢рдирд┐рд╡рд╛рд░, 4 рдЬреБрд▓рд╛рдИ, 2020 рдкреВрд░реНрд╡рд╛рд╣реНрди 4:34
рдкреНрд░рддрд┐: рдХреЛрдгреАрдп/рдЪрд╛рдЪрд╛ рдЪрд╛рдВрджрд╛ @
рд╕реАрд╕реА: рдмрд╛рд░реНрдЯрдХреЛрд╡рд┐рдпрд╛рдХ-рдЬреЛрд╕рд╛, рдореИрдЧреНрдбрд╛рд▓реЗрдирд╛ [email protected] ; рдЯрд┐рдкреНрдкрдгреА рдЯрд┐рдкреНрдкрдгреА @noreply.github.com
рд╡рд┐рд╖рдп: рдкреБрди: [рдХреЛрдгреАрдп/рдЪрд╛рдЪрд╛] рд╢реИрдбреЛрдбреЛрдо рд╕рдорд░реНрдерди рдЕрдиреБрд░реЛрдз (#4367)

@рдлрд░реНрд╕реНрдЯ рдпрд╛ https://github.com/firstor
рдореЗрд░рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реИрдбреЛ рд░реВрдЯреНрд╕ рдХреЗ 10 рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде Polymer.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
[рдЫрд╡рд┐ рдкреНрд░реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдИ рдЧрдИред рдЖрд░рдЬреЗрд╡реАрдПрд▓рдПрдл] https://user-images.githubusercontent.com/57852329/72205775-de7d6300-34ac-11ea-93f7-37917052ce90.png
рдХреНрдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЫрд╛рдпрд╛ рдЬрдбрд╝реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╢реАрд░реНрд╖ рдиреЛрдб рд╕реЗ рдЕрдВрддрд┐рдо рдЫрд╛рдпрд╛ рдореВрд▓ рддрддреНрд╡ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@firstor https://github.com/firstor рдореИрдВ рдЖрдкрдХреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЫрд╛рдпрд╛ рдбреЛрдо рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдиреЗрд╕реНрдЯреЗрдб рдЫрд╛рдпрд╛ рдбреЛрдо рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рджреЛ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА рдХреБрдЫ рддрддреНрд╡реЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛:
рдпрд╣ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдореБрдЭреЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП div рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: div.a-choosen-text:
[рдЫрд╡рд┐ рдкреНрд░реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдИ рдЧрдИред рдЫрд╡рд┐] https://user-images.githubusercontent.com/50359393/86498151-c532e080-bd84-11ea-867c-337085b96087.png

рдореИрдВрдиреЗ рдиреАрдЪреЗ рд▓реЛрдХреЗрдЯрд░ (рдФрд░ рдХрдИ рдЕрдиреНрдп) рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА:
nameOnTheProjectTab = element(by.css_sr('app-dumbledore::sr lit-route::sr app-dashboard::sr app- project:nth-child (1)::sr appkit-panel::sr app-assignee- dropdown::sr appkit-dropdown::sr div.a-choosen-text'));

рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдРрдк-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрдЯрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЬреЛ рднреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╕реНрдерд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЯреИрдм = рддрддреНрд╡ (by.css_sr ('рдРрдк-рдбрдВрдмрд▓рдбреЛрд░ :: рдПрд╕рдЖрд░ рд▓рд┐рдЯ-рд░реВрдЯ :: рдПрд╕рдЖрд░ рдРрдк-рдбреИрд╢рдмреЛрд░реНрдб :: рдПрд╕рдЖрд░ рдРрдк- рдкреНрд░реЛрдЬреЗрдХреНрдЯ: рдПрдирдПрдЪ-рдЪрд╛рдЗрд▓реНрдб (1)'));

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж,
рдордЧрджрд╛

рд╣рд╛рдп рдордЧрджрд╛,
рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, WebElement рдПрдкрдХрд┐рдЯ-рдкреИрдирд▓ рдХреЗ рддрд╣рдд рдЫрд╛рдпрд╛ рд░реВрдЯ рдХреЛ рдЖрдкрдХреЗ рддрддреНрд╡ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди nameOnTheProjectTab рддрддреНрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рддрддреНрд╡ рд▓реЛрдХреЗрдЯрд░ рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдВ,
nameOnTheProjectTab = element(by.css_sr('app-dumbledore::sr lit-route::sr app-dashboard::sr app- project:nth-child (1)::sr app-assignee-dropdown::sr appkit- dropdown::sr div.a-choosen-text'));

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/angular/protractor/issues/4367#issuecomment-653710546 рдкрд░ https://github.com/notifications/unsubscribe-auth/AMAGYYOPZMDJCRSHT5XI45TRZ2ILDANCNFSM4DR44ABQ рдХреЛ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм


рдХреИрдкрдЬреЗрдорд┐рдиреА рдкреЛрд▓реНрд╕реНрдХрд╛ рд╕рдкрд╛ред рдЬрд╝реВ рдУ,
рдЙрд▓. рд╕реНрд╡рд┐рд░рдХреА рдФрд░ рд╡рд┐рдЧреБрд░реА 16a 02-092 рд╡рд╛рд░рд╕рд╛рд╡рд╛,
S?d Rejonowy dla M.ST. рд╡рд╛рд░реНрд╕рдЬрд╝рд╛рд╡реА, рдмрд╛рд░рд╣рд╡реАрдВ рд╡рд┐рджрдЬрд╝рд┐рдпрд╛? рдЧреЛрд╕реНрдкреЛрдбрд╛рд░реНрдХреА рд░реЗрдЬреЗрд╕реНрдЯреНрд░реЛрд╡реА, рдПрдирдЖрд░ рдХреЗрдЖрд░рдПрд╕: 0000040605,
рдПрдирдЖрдИрдкреА: 526-11-84-467,
рд╡рд╛рдпрд╕реЛрдХреЛ ?? kapita?u zak?adowego: 16.403.320,000 z?.
рдЗрд╕ рд╕рдВрджреЗрд╢ рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдпрд╛ рдЧреЛрдкрдиреАрдп рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдХреИрдкрдЬреЗрдорд┐рдиреА рд╕рдореВрд╣ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрдЪреНрдЫрд┐рдд рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рд╕рдВрджреЗрд╢ рдпрд╛ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднрд╛рдЧ рдХреЛ рдкрдврд╝рдиреЗ, рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ, рдмрдирд╛рдП рд░рдЦрдиреЗ, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ, рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ, рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдЧрд▓рддреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдкреНрд░реЗрд╖рдХ рдХреЛ рддреБрд░рдВрдд рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреА рд╕рднреА рдкреНрд░рддрд┐рдпрд╛рдВ рд╣рдЯрд╛ рджреЗрдВред

рд╣реЗ рд╕рдм рд▓реЛрдЧ, рдХрд┐рд╕реА рднреА рдЧрд╣рд░реЗ рд╕реНрддрд░ рдкрд░ рд╢реИрдбреЛ рд░реВрдЯ рдХреЗ рдЕрдВрджрд░ рд╢реИрдбреЛ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред
рдиреЛрдб рдореЙрдбреНрдпреВрд▓ "рдХреНрд╡реЗрд░реА-рдЪрдпрдирдХрд░реНрддрд╛-рдЫрд╛рдпрд╛-рдбреЛрдо" рдХреА рдорджрдж рд╕реЗ, рд╣рдо рд╢реИрдбреЛ рдбреЛрдо рдореЗрдВ рд╡реЗрдм рддрддреНрд╡реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рдЫрд╛рдпрд╛ рдЬрдбрд╝реЛрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (by.shadowDomCss ('')), рд╣рдо рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░ рд╢реИрдбреЛ рд░реВрдЯ рдХреЗ рдЕрдВрджрд░ рд╡реЗрдм рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рдп рдЕрд▓рдЧрдкреНрдкрди,
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж

рдмреБрдзрд╡рд╛рд░, 19 рдЕрдЧрд╕реНрдд, 2020 рдХреЛ рд╕реБрдмрд╣ 7:52 рдмрдЬреЗ рдЕрд▓рдЧрдкреНрдкрди-рдЕрдиреНрдирд╛рдорд▓рд╛рдИ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

рд╣реЗ рд╕рдм, рдХреЗ рдЕрдВрджрд░ рдЫрд╛рдпрд╛ рддрддреНрд╡реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛
рдХрд┐рд╕реА рднреА рдЧрд╣рд░реЗ рд╕реНрддрд░ рдкрд░ рд╢реИрдбреЛ рд░реВрдЯред
рдиреЛрдб рдореЙрдбреНрдпреВрд▓ "рдХреНрд╡реЗрд░реА-рдЪрдпрдирдХрд░реНрддрд╛-рдЫрд╛рдпрд╛-рдбреЛрдо" рдХреА рдорджрдж рд╕реЗ, рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╢реИрдбреЛ рдбреЛрдо рдореЗрдВ рд╡реЗрдм рддрддреНрд╡реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рдиреЗрдВред рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ
рд╕рднреА рдЫрд╛рдпрд╛ рдЬрдбрд╝реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рддрддреНрд╡ (by.shadowDomCss ('')) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЕрдВрджрд░ рд╡реЗрдм рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░ рд╢реИрдбреЛ рд░реВрдЯред

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

рд╣рд╛рдп рдЕрд▓рдЧрдкреНрдкрди, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж
тАж
рдмреБрдзрд╡рд╛рд░, 19 рдЕрдЧрд╕реНрдд, 2020 рдХреЛ рд╕реБрдмрд╣ 7:52 рдмрдЬреЗ рдЕрд▓рдЧрдкреНрдкрди-рдЕрдиреНрдирд╛рдорд▓рд╛рдИ < @ ред * > рд▓рд┐рдЦрд╛: рд╣реЗ рд╕рдм, рдХрд┐рд╕реА рднреА рдЧрд╣рд░реЗ рд╕реНрддрд░ рдкрд░ рд╢реИрдбреЛ рд░реВрдЯ рдХреЗ рдЕрдВрджрд░ рд╢реИрдбреЛ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдиреЛрдб рдореЙрдбреНрдпреВрд▓ "рдХреНрд╡реЗрд░реА-рдЪрдпрдирдХрд░реНрддрд╛-рдЫрд╛рдпрд╛-рдбреЛрдо" рдХреА рдорджрдж рд╕реЗ, рд╣рдо рд╢реИрдбреЛ рдбреЛрдо рдореЗрдВ рд╡реЗрдм рддрддреНрд╡реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рдЫрд╛рдпрд╛ рдЬрдбрд╝реЛрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред element(by.shadowDomCss('')) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░ рд╢реИрдбреЛ рд░реВрдЯ рдХреЗ рдЕрдВрджрд░ рд╡реЗрдм рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред тАФ рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub < #4367 (рдЯрд┐рдкреНрдкрдгреА) > рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ https://github.com/notifications/unsubscribe-auth/AK2OQDTZK2ZVJTICP3VGS3DSBPDJVANCNFSM4DR44ABQ рдХреЛ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм

72205775-de7d6300-34ac-11ea-93f7-37917052ce90
рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ, id=container рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдкреЗрдкрд░-рдЗрдирдкреБрдЯ-рдХрдВрдЯреЗрдирд░ 6+ рд╢реИрдбреЛ рд░реВрдЯ рд▓реЗрдпрд░ рдкрд░ рд╣реИред рдЗрд╕ webElement рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо element(by.shadowDomCss('paper-input#textbox paper-input-container#container')); рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрд╣ рд▓рдШреБ рддрддреНрд╡ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ WebElement рдкрд░ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ред

рд╣рд╛рдп @firstor / @msbasanth , рдореИрдВ рдЫрд╛рдпрд╛-рд░реВрдЯ рдбреЛрдо рдореЗрдВ рдореМрдЬреВрдж рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдПрдХ .ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд▓рд╛рдЗрди рдирдВрдмрд░ рдкрд░ рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред 6:
рдХреЛрдб: рд╢реИрдбреЛрдбреЛрдордЗрдирдпреВрдЬ = (рдбреЙрдХреНрдпреВрдореЗрдВрдЯ.рд╣реЗрдб.рдХреНрд░рд┐рдПрдЯрд╢реИрдбреЛрд░реВрдЯ...
рддреНрд░реБрдЯрд┐: рд╕рдВрдкрддреНрддрд┐ 'createShadowRoot' рдкреНрд░рдХрд╛рд░ 'HTMLHeadElement' рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ ред

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓реА рдФрд░ рд╕рдорд╛рдзрд╛рди createShadowRoot рдХреЛ attachShadow рд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ createShadowRoot() рд╡рд┐рдзрд┐ рдХреЛ рдЕрдЯреИрдЪрд╢реИрдбреЛ() рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдВрджрд░реНрдн рджреЗрдЦреЗрдВ:
https://developer.mozilla.org/en-US/docs/Web/API/Element/createShadowRoot

рд╡реИрд╕реЗ @firstor , рдЗрд╕ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдЕрдм рддрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ рдФрд░ рдПрдВрдЧреБрд▓рд░ 10 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП by.deepCss рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдгреАрдп 10 рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рджреЗрд╢реА рд╢реИрдбреЛрдбреЛрдо рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, encapsulation: ViewEncapsulation.ShadowDom рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЦреБрд╢ рдирд╣реАрдВ рдерд╛ред e2e рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рднреА рдиреЗрд╕реНрдЯреЗрдб рд╢реИрдбреЛрдбреЙрдо рддрддреНрд╡реЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрд╛ред рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдХреЛрдб рдорд┐рд▓рд╛!

@ рд░реЛрдм4226
рдХреГрдкрдпрд╛ рдкреИрдХреЗрдЬ рджреЗрдЦреЗрдВ https://www.npmjs.com/package/query-selector-shadow-dom

рдЙрдореНрдореАрдж рддреЛ рджрд┐рдЦрддреА рд╣реИред

@msbasanth @Rob4226 рдореИрдВ рдЪрд╛рдВрджрд╛ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ, рдореИрдВ рдХреНрд░реЛрдо рдбрд╛рдЙрдирд▓реЛрдб рдкреЗрдЬ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ 'рдбрд╛рдЙрдирд▓реЛрдб' рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдореЗрд░рд╛ рдХреЛрдб:
image
рдореИрдВрдиреЗ рднреА рдХреЛрд╢рд┐рд╢ рдХреА var x = рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ element.element(by.css_sr('h1')).getText(); рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:
image

рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВ рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЗрд╕реНрдЯреЗрдб рдЫрд╛рдпрд╛ рдореВрд▓ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рддрддреНрд╡ рдЪрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@firstor рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛

рд╣реИрд▓реЛ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЫрд╛рдпрд╛ рдбреЛрдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реВрдВред рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

Logg: { StaleElementReferenceError: stale element reference: stale element not found (Session info: chrome=87.0.4280.66)

рдЙрдкрдпреЛрдЧ:
const parent = element(by.css_sr('my-wrapper > div > div::sr my-data')); const domElement = parent.element(by.css('my-checkbox input')); console.log('Displayed', await domElement.isDisplayed());

<my-data> <my-checkbox> <input> <my-checkbox> </my-data> .....
рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?

рд╣реИрд▓реЛ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЫрд╛рдпрд╛ рдбреЛрдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реВрдВред рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

Logg: { StaleElementReferenceError: stale element reference: stale element not found (Session info: chrome=87.0.4280.66)

рдЙрдкрдпреЛрдЧ:
const parent = element(by.css_sr('my-wrapper > div > div::sr my-data')); const domElement = parent.element(by.css('my-checkbox input')); console.log('Displayed', await domElement.isDisplayed());

<my-data> <my-checkbox> <input> <my-checkbox> </my-data> .....
рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?

рд╣рд╛рдп @wasoek , рдХреНрдпрд╛ рдЖрдк рд╢реИрдбреЛ рд░реВрдЯ рд╕реЗ рдЗрд╕ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓> рдирд┐рд░реАрдХреНрд╖рдг рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реЗрдЧреАред

рдирдорд╕реНрддреЗ,

рдЗрд╕реЗ рдиреАрдЪреЗ рджреА рдЧрдИ 2 рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,

рдЪрд▓реЛ element1 = element.all(by.css_shadowroot('downloads-manager::sr div')).get(1)

рдЪрд▓реЛ element2 = element1.element(by.css_shadowroot('::sr downloads-item::sr div::sr downloads-item')).getText();
рдпрд╛

browser.element(by.css_shadowroot('downloads-manager::sr div[id="mainContainer"]::sr downloads-item::sr div::sr downloads-item')).getText();
[рдпрд╣рд╛рдВ nрд╡реЗрдВ рдмрдЪреНрдЪреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдпрд╣ рддрддреНрд╡ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗ]

рдзрдиреНрдпрд╡рд╛рдж,
рдЕрд▓рдЧрдкреНрдкрди рдП

рд╕реЗ: shopmujahid [email protected]
рднреЗрдЬрд╛ рдЧрдпрд╛: рдЧреБрд░реБрд╡рд╛рд░, 3 рджрд┐рд╕рдВрдмрд░, 2020 рдкреВрд░реНрд╡рд╛рд╣реНрди 9:20
рдкреНрд░рддрд┐: рдХреЛрдгреАрдп/рдЪрд╛рдЪрд╛ рдЪрд╛рдВрджрд╛ @
рд╕реАрд╕реА: рдЕрд▓рдЧрдкреНрдкрди рдЕрдиреНрдирд╛рдорд▓рд╛рдИ [email protected] ; рдЯрд┐рдкреНрдкрдгреА рдЯрд┐рдкреНрдкрдгреА @noreply.github.com
рд╡рд┐рд╖рдп: рдкреБрди: [рдХреЛрдгреАрдп/рдЪрд╛рдЪрд╛] рд╢реИрдбреЛрдбреЛрдо рд╕рдорд░реНрдерди рдЕрдиреБрд░реЛрдз (#4367)

рдореИрдВ рдЫрд╛рдпрд╛ рдбреЛрдо (рд╣рд╛рдЗрд▓рд╛рдЗрдЯ) рдХреЗ рджреВрд╕рд░реЗ div рддрддреНрд╡ рдХреЗ рддрд╣рдд рддрддреНрд╡реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ div рддрддреНрд╡ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ:

W/element - рд▓реЛрдХреЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддрддреНрд╡ рдкрд╛рдП рдЧрдП by.css_shadowroot("downloads-manager::sr div") - рдкрд╣рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рдиреАрдЪреЗ рдореЗрд░рд╛ xpath рд╣реИ:
browser.element(by.css_shadowroot('downloads-manager::sr div:nth-child (1)::sr downloads-item::sr div::sr downloads-item')).getText();

рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж

[рдЫрд╡рд┐] https://user-images.githubusercontent.com/58770415/100961235-336c0280-34df-11eb-9618-1f24ffcd62a0.png

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/angular/protractor/issues/4367#issuecomment-737647758 рдкрд░ https://github.com/notifications/unsubscribe-auth/AORWPO6XNK7RUWPVHCWKBCTSS4DH5ANCNFSM4DR44ABQ рдХреЛ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм

рдореИрдВ рдЫрд╛рдпрд╛ рдбреЛрдо рдХреЗ рдЕрдВрджрд░ div рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рджреЛрдиреЛрдВ рдПрдирдПрдЪ-рдЪрд╛рдЗрд▓реНрдб() рдФрд░ рдЯрд╛рдЗрдк-рдСрдл() рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛?

рдиреАрдЪреЗ рдбреЛрдо рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдореЗрд░рд╛ xpath рд╣реИ
2134234

рдкреНрд░рддреАрдХреНрд╖рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рддрддреНрд╡ (by.css_shadowroot ('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди :: sr d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореБрдЦреНрдп- рд╢реАрд░реНрд╖рд▓реЗрдЦ: nth-type-of (3)'))

рдореБрдЭреЗ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИред

рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рджред

рдирдорд╕реНрддреЗ,

рддрддреНрд╡ рд▓реЛрдХреЗрдЯрд░ рдореЗрдВ :: sr рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢реИрдбреЛ рд░реВрдЯ рдХреЗ рдмрд╛рд╣рд░ рд╣реИред
рдЗрди 2 рдПрд▓рд┐рдореЗрдВрдЯ рд▓реЛрдХреЗрдЯрд░ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдкреНрд░рддреАрдХреНрд╖рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рддрддреНрд╡ (by.css_shadowroot ('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореБрдЦреНрдп- рд╢реАрд░реНрд╖рд▓реЗрдЦ: nth-type-of (3)'))
рдпрд╛

рдкреНрд░рддреАрдХреНрд╖рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рддрддреНрд╡ (by.css_shadowroot ('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореЗрди-рд╣реЗрдбрд░ рдбрд┐рд╡ред d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рд╣реЗрдбрд░-рд░рд╛рдЗрдЯ'))

рдзрдиреНрдпрд╡рд╛рдж,

рдЕрд▓рдЧрдкреНрдкрди рдП
рд╕реЗ: shopmujahid [email protected]
рднреЗрдЬрд╛ рдЧрдпрд╛: рдмреБрдзрд╡рд╛рд░, рджрд┐рд╕рдВрдмрд░ 9, 2020 рджреЛрдкрд╣рд░ 12:09 рдмрдЬреЗ
рдкреНрд░рддрд┐: рдХреЛрдгреАрдп/рдЪрд╛рдЪрд╛ рдЪрд╛рдВрджрд╛ @
рд╕реАрд╕реА: рдЕрд▓рдЧрдкреНрдкрди рдЕрдиреНрдирд╛рдорд▓рд╛рдИ [email protected] ; рдЯрд┐рдкреНрдкрдгреА рдЯрд┐рдкреНрдкрдгреА @noreply.github.com
рд╡рд┐рд╖рдп: рдкреБрди: [рдХреЛрдгреАрдп/рдЪрд╛рдЪрд╛] рд╢реИрдбреЛрдбреЛрдо рд╕рдорд░реНрдерди рдЕрдиреБрд░реЛрдз (#4367)

рдореИрдВ рдЫрд╛рдпрд╛ рдбреЛрдо рдХреЗ рдЕрдВрджрд░ div рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рджреЛрдиреЛрдВ рдПрдирдПрдЪ-рдЪрд╛рдЗрд▓реНрдб() рдФрд░ рдЯрд╛рдЗрдк-рдСрдл() рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛?

рдиреАрдЪреЗ рдбреЛрдо рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдореЗрд░рд╛ xpath рд╣реИ
[2134234] https://user-images.githubusercontent.com/58770415/101593797-cc9e8b80-39ad-11eb-8fd0-a7cd7541773f.jpg

рдкреНрд░рддреАрдХреНрд╖рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рддрддреНрд╡ (by.css_shadowroot ('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди :: sr d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореБрдЦреНрдп- рд╢реАрд░реНрд╖рд▓реЗрдЦ: nth-type-of (3)'))

рдореБрдЭреЗ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИред

рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рджред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/angular/protractor/issues/4367#issuecomment-741567009 рдкрд░ https://github.com/notifications/unsubscribe-auth/AORWPO7CSSI7P5GH37O74R3ST4LO5ANCNFSM4DR44ABQ рдХреЛ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм

рдзрдиреНрдпрд╡рд╛рдж @ рдЕрд▓рдЧрдкреНрдкрди-рдЕрдиреНрдирд╛рдорд▓рд╛рдИ! ЁЯСН рджреВрд╕рд░рд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП :: sr рдХреЛ рд╣рдЯрд╛рдХрд░ рдФрд░ tagname.classname рдЬреЛрдбрд╝рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЕрдиреНрдп рдЕрдЬреАрдм рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдпрд╣ рдиреАрдЪреЗ рдХреЗ рдмрд╛рд▓ рддрддреНрд╡реЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реИ:
2134234

рдореБрдЭреЗ рдЙрдкрд░реЛрдХреНрдд рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдиреАрдЪреЗ рджреЛрдиреЛрдВ xpaths рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
browser.element(by.css_sr('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореЗрди-рд╣реЗрдбрд░ div.d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рд╣реЗрдбрд░-рд░рд╛рдЗрдЯ рдбрд┐рд╡ d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди-рдХрдВрдЯреЗрдВрдЯ рдбрд┐рд╡ рдбрд┐рд╡ рдбрд┐рд╡ рдЙрд▓:nth-child(2)' ))

рддрдерд╛

browser.element(by.css_sr('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореЗрди-рд╣реЗрдбрд░ div.d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рд╣реЗрдбрд░-рд░рд╛рдЗрдЯ рдбрд┐рд╡ d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди-рдХрдВрдЯреЗрдВрдЯ рдбрд┐рд╡ рдбрд┐рд╡ рдбрд┐рд╡ рдЙрд▓ рд▓реА._(рдЬрдм рд╣рдо рдЗрд╕ рдкрд░ рд╣реЛрд╡рд░ рдХрд░реЗрдВрдЧреЗ рддреЛ рд▓реА рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝ рджреЗрдЧрд╛)

рдореБрдЭреЗ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИред
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

рдзрдиреНрдпрд╡рд╛рдж @ рдЕрд▓рдЧрдкреНрдкрди-рдЕрдиреНрдирд╛рдорд▓рд╛рдИ! ЁЯСН рджреВрд╕рд░рд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП :: sr рдХреЛ рд╣рдЯрд╛рдХрд░ рдФрд░ tagname.classname рдЬреЛрдбрд╝рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЕрдиреНрдп рдЕрдЬреАрдм рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдпрд╣ рдиреАрдЪреЗ рдХреЗ рдмрд╛рд▓ рддрддреНрд╡реЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реИ:
2134234

рдореБрдЭреЗ рдЙрдкрд░реЛрдХреНрдд рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдиреАрдЪреЗ рджреЛрдиреЛрдВ xpaths рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
browser.element(by.css_sr('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореЗрди-рд╣реЗрдбрд░ div.d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рд╣реЗрдбрд░-рд░рд╛рдЗрдЯ рдбрд┐рд╡ d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди-рдХрдВрдЯреЗрдВрдЯ рдбрд┐рд╡ рдбрд┐рд╡ рдбрд┐рд╡ рдЙрд▓:nth-child(2)' ))

рддрдерд╛

browser.element(by.css_sr('d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рдореЗрди-рд╣реЗрдбрд░ div.d2l-рдиреЗрд╡рд┐рдЧреЗрд╢рди-рд╣реЗрдбрд░-рд░рд╛рдЗрдЯ рдбрд┐рд╡ d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди d2l-рдбреНрд░реЙрдкрдбрд╛рдЙрди-рдХрдВрдЯреЗрдВрдЯ рдбрд┐рд╡ рдбрд┐рд╡ рдбрд┐рд╡ рдЙрд▓ рд▓реА.__')) (рдЬрдм рд╣рдо рдЗрд╕ рдкрд░ рд╣реЛрд╡рд░ рдХрд░реЗрдВрдЧреЗ рддреЛ рд▓реА рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝ рджреЗрдЧрд╛)

рдореБрдЭреЗ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИред
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕реЗ css_sr рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдХреБрдЫ HTML рд╡реЗрдм рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
browser.element.all(by.css('d2l-navigation d2l-navigation-main-header ul[class="d2l-datalist vui-list"] li')).get(1);

рдмреНрд░рд╛рд╡реЛ, рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рдзрдиреНрдпрд╡рд╛рдж @ рдЕрд▓рдЧрдкреНрдкрди-рдЕрдиреНрдирд╛рдорд▓рд╛рдИ! рдореИрдВ

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

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

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

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

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

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

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