Webdriverio: MS Edge рдкрд░ browser.switchToFrame () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЕрдкреНрд░реИрд▓ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: webdriverio/webdriverio

рд╡рд╛рддрд╛рд╡рд░рдг :

  • рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░рд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг: ["рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░рд┐рдпреЛ": "^ 5.7.15"]
  • рдореЛрдб: [WDIO рдЯреЗрд╕реНрдЯрд░рдирд░/рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╕реНрдЯреИрдХ]
  • рдпрджрд┐ WDIO рдЯреЗрд╕реНрдЯрд░рдирд░, рд╕рд┐рдВрдХ/рдПрд╕рд┐рдВрдХреНрд╕ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ: [рд╕рд┐рдВрдХ]
  • Node.js рд╕рдВрд╕реНрдХрд░рдг: [v8.11.3]
  • рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг: [5.6.0]
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдирд╛рдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг: [рдПрдордПрд╕ рдПрдЬ v16, v17, v18]
  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рдирд╛рдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг: [macOS Mojave 10.14.4]
  • рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрддрд┐рд░рд┐рдХреНрдд wdio рдкреИрдХреЗрдЬ (рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ): рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реЗ рдирдореВрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ GitHub рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛

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

"dependencies": {
    "browserstack-local": "^1.3.7",
    "config": "^1.28.1",
    "uuid": "^3.1.0",
    "webdriverio": "^5.7.15"
  },
  "devDependencies": {
    "config": "^1.28.1",
    "@wdio/cli": "^5.7.15",
    "@wdio/local-runner": "^5.7.15",
    "@wdio/mocha-framework": "^5.7.14",
    "@wdio/sync": "^5.7.13"
  }

WebdriverIO рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕

exports.config = {
    user: process.env.BROWSERSTACK_USERNAME || 'XXX',
    key: process.env.BROWSERSTACK_ACCESS_KEY || 'YYY',
    specs: [
        './test/specs/**/*.js'
    ],
    // Patterns to exclude.
    exclude: [
        // 'path/to/excluded/files'
    ],
    maxInstances: 10,
    capabilities: [
        // Chrome and all other browsers work fine
        // {
        //     browser: 'Chrome',
        //     resolution: '1280x1024',
        //     os: 'Windows',
        //     os_version: '10',
        //     name: 'Chrome',
        //     project: 'TT UI',            
        //     'browserstack.networkLogs': true
        // },
        {
            browserName: 'Edge',
            browser_version: '18.0',
            resolution: '2048x1536',
            os: 'Windows',
            os_version: '10',
            name: 'Microsoft EDGE',
            project: 'TT UI',           
            'browserstack.networkLogs': true
        }
    ],
    // Level of logging verbosity: trace | debug | info | warn | error | silent
    logLevel: 'debug',
    waitforTimeout: 10000,
    connectionRetryTimeout: 90000,
    connectionRetryCount: 3,
    framework: 'mocha',
    mochaOpts: {
        ui: 'bdd',
        timeout: 60000
    }
}

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдХрдорд╛рдВрдб browser.switchToFrame() рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрдЬ рд╡рд░реНрдЬрди 16,17 рдФрд░ 18 рдкрд░ iFrames рдкрд░ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреНрд░реЛрдо, рдлрд╛рдпрд░рдлреЙрдХреНрд╕, рд╕рдлрд╛рд░реА рдФрд░ IE11 рдкрд░ рд╕рдорд╛рди рдХрдорд╛рдВрдб рдФрд░ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ (рдЕрдиреБрднрд╛рдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ) рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рдЬрдирди рдХрд░рдирд╛

  • рд╡рд┐рдХрд▓реНрдк 1 (рдЕрдиреБрд╢рдВрд╕рд┐рдд)
    рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ:

    • рдХрдорд╛рдВрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА (рд╕реЗрдЯ рдЕрдк/рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди): https://github.com/Amiiine/iFrameSwitch

    • iFrames рдХреЗ рд╕рд╛рде рд╕реНрдЯреЗрдЯрд┐рдХ рдкреЗрдЬ: https://goofy-pasteur-93f74a.netlify.com/

npm run test:local рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдЪрд╛рд▓реВ рд╣реИ
npm run test:remote рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ wdio.remote.conf.js рдореЗрдВ рдЕрдкрдирд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╕реНрдЯреИрдХ user рдФрд░ key рдбрд╛рд▓рд╛ рд╣реИ

рдПрдХ рдмрд╛рд░ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, browser.switchToFrame(parentFrame) рдкрд░ рдирд┐рдореНрди рд╕рдВрджреЗрд╢ ERROR webdriver: Request failed due to no such frame: The specified frame was not found in the current frame or window. рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ

  • рд╡рд┐рдХрд▓реНрдк 2

Ms Edge- рд╡рд░реАрдп рд░реВрдк рд╕реЗ BrowserStack рдкрд░, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП- browser.switchToFrame(element) рдпрд╛ browser.switchToFrame(element.elementId) рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рдХрд▓реНрдк 1 рдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИ

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ iFrame рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдФрд░ MS Edge рдкрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

рд▓реЙрдЧ

рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдФрд░ wdio рд▓реЙрдЧ рдпрд╣рд╛рдБ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд╣реИрдВ gist

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдпрд╣ рдкреНрд░рд╢реНрди Gitter рдЪреИрдирд▓ рдореЗрдВ рдкреВрдЫрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЖрдЬ @christian-bromann рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдХреА, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреАред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ 3774 рдЗрд╕

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

рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИ:

рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд░рд╕реНрдЯреИрдХ рдХреЗ рддрд╣рдд рдХреНрд░реЛрдо, рдлрд╛рдпрд░рдлреЙрдХреНрд╕, рдПрдордПрд╕ рдПрдЬ, рдЖрдИрдИ11 рдФрд░ рд╕рдлрд╛рд░реА рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛

let iFrame = $('//*[@name="iFrameSelector"]');
if (browser.capabilities.browserName === "MicrosoftEdge") iFrame = "iFrameSelector";
browser.switchToFrame(iFrame)

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

рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИ:

рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд░рд╕реНрдЯреИрдХ рдХреЗ рддрд╣рдд рдХреНрд░реЛрдо, рдлрд╛рдпрд░рдлреЙрдХреНрд╕, рдПрдордПрд╕ рдПрдЬ, рдЖрдИрдИ11 рдФрд░ рд╕рдлрд╛рд░реА рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛

let iFrame = $('//*[@name="iFrameSelector"]');
if (browser.capabilities.browserName === "MicrosoftEdge") iFrame = "iFrameSelector";
browser.switchToFrame(iFrame)

@ рдХреНрд░рд┐рд╢реНрдЪрд┐рдпрди-рдмреНрд░реЛрдорди рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред
рд╢реБрдХреНрд░рд┐рдпрд╛

рдореИрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред рдореИрдВрдиреЗ рд╕реАрдзреЗ рд╕реНрд╡рд┐рдЪрдЯреЙрдлреНрд░реЗрдо рдкрд░ рдХреНрд▓рд╛рд╕ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ The specified frame was not found in the current frame or window. ред рдЖрдкрдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдореБрдЭреЗ рдХреНрд▓рд╛рд╕рдирд╛рдо рдпрд╛ рдЖрдИрдбреА рд╕реАрдзреЗ browser.switchToFrame(id or classname) рдореЗрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рд╡реЛ рд╕рд╣реА рд╣реИ?

рдЕрджреНрдпрддрди: рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХреНрд░реЛрдо, рдпрд╛рдиреА рдФрд░ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдлрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

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

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

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

pfluegs picture pfluegs  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

peterjwest picture peterjwest  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ