<p>๊ฐ๋„๊ธฐ๊ฐ€ iframe์œผ๋กœ ์ „ํ™˜ํ•˜์ง€ ๋ชปํ•จ</p>

์— ๋งŒ๋“  2017๋…„ 10์›” 11์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: angular/protractor

  • ๋…ธ๋“œ ๋ฒ„์ „: node --version v6.11.3
  • ๊ฐ๋„๊ธฐ ๋ฒ„์ „: Version 5.1.2
  • ๋ธŒ๋ผ์šฐ์ €: chrome
  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „ win10
  1. ์ฝ˜์†”์—์„œ ์‹คํ–‰:
    console

test.spec.js

describe('Suite: test', function () {

    describe('should select iframe', function () {

        beforeAll(function () {
            browser.ignoreSynchronization = true;
            browser.get('https://www.ammado.com/donate');
        });

        afterAll(function () {
            browser.ignoreSynchronization = false;
        });

        it('should wait for iframe', function () {
            waitForEl($('iframe'));
        });

        it('should switch to iframe', function () {
            browser.switchTo().frame(element(by.tagName('iframe')));
        });

        it('should log', function () {
            console.log('iframe selected!')
        });

    });

    function waitForEl(element) {
        var EC = protractor.ExpectedConditions;
        browser.driver.wait(EC.presenceOf(element), 30000).then(function () {
            // success
        }, function (error) {
            fail("waitForEl: " + error + " on element: " + element.locator());
        });
    };

});

ํšŒ์˜

exports.config = {
    directConnect: true,

    capabilities: {
        browserName: 'chrome',
        chromeOptions: {
            'args': ['disable-infobars=true'],
            'prefs': {
                'credentials_enable_service': false
            }
        },
    },

    framework: 'jasmine',

    suites: {
        eval: ['./test.spec.js']
    },

    allScriptsTimeout: 30000,

    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 30000,
        isVerbose: true
    },

    onPrepare: function() {
        const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
        jasmine.getEnv().addReporter(new SpecReporter());
        browser.driver.manage().window().setSize(1440, 900);
    },

};

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

browser.switchTo().frame(0) -- ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์ €๋ฅผ ์œ„ํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค!

๋ชจ๋“  3 ๋Œ“๊ธ€

D:\ammado\github\Protractor.Widget\exc>webdriver-manager status
[09:42:35] I/status - selenium standalone versions available: 3.5.3, 3.6.0 [last]
[09:42:35] I/status - chromedriver versions available: 2.32, 2.33 [last]
[09:42:35] I/status - geckodriver version available: v0.19.0 [last]
[09:42:35] I/status - IEDriverServer is not present
[09:42:35] I/status - android-sdk is not present
[09:42:35] I/status - appium is not present

์•ˆ๋…•ํ•˜์„ธ์š”!

๊ท€ํ•˜์˜ ์งˆ๋ฌธ์€ StackOverflow ๋˜๋Š” Gitter์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์„ ๋ฐ›์œผ๋ ค๋ฉด '๊ฐ๋„๊ธฐ' ํƒœ๊ทธ๋กœ ์งˆ๋ฌธ ํ•˜๊ฑฐ๋‚˜ Gitter ์ฑ„๋„ ์— ๊ฒŒ์‹œํ•˜์„ธ์š”.

README์˜ ๋„์›€๋ง ์–ป๊ธฐ ์„น์…˜์—์„œ:

StackOverflow("๊ฐ๋„๊ธฐ" ํƒœ๊ทธ ์‚ฌ์šฉ) ๋˜๋Š” Angular ํ† ๋ก  ๊ทธ๋ฃน์—์„œ ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋””๋ฒ„๊น… ์งˆ๋ฌธ์„ ํ•˜์‹ญ์‹œ์˜ค. (์—ฌ๊ธฐ Github์—์„œ ์ง€์› ์งˆ๋ฌธ์„ ํ•˜์ง€ ๋งˆ์„ธ์š”.)

๊ฐ์‚ฌ ํ•ด์š”!

browser.switchTo().frame(0) -- ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์ €๋ฅผ ์œ„ํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰