Protractor: ์—ฌ๋Ÿฌ ํ‚ค(CTRL+a)๊ฐ€ ์žˆ๋Š” sendKeys๊ฐ€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์•ˆ๋…•!

๋ฒ„๊ทธ ์‹ ๊ณ 

  • ๋…ธ๋“œ ๋ฒ„์ „: 7.5.0
  • ๊ฐ๋„๊ธฐ ๋ฒ„์ „: 4.0.14
  • ๋ธŒ๋ผ์šฐ์ €: Chrome 56 on centos 7 (idem for Firefox)
  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „ CentOS 7
  • ๊ฐ๋„๊ธฐ ๊ตฌ์„ฑ ํŒŒ์ผ:
'use strict';

var testiCommons = require('../utilit/testiCommons.js');

exports.config = {
    framework: 'mocha',
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['../../../*/tests/protractor/**/*.js'],
    baseUrl: 'http://localhost:3001',
    getPageTimeout: 30000,
    allScriptsTimeout: 30000,
    mochaOpts: {
        timeout: 30000, // ms,
        reporter: 'spec',
        slow: '2000', // a test is slow if it takes over 1 sec to accomplish
        delay: true
    },

    capabilities: {
        // If this is set to be true, specs will be sharded by file (i.e. all
        // files to be run by this set of capabilities will run in parallel).
        // Default is false.
        shardTestFiles: false,

        // Maximum number of browser instances that can run in parallel for this
        // set of capabilities. This is only needed if shardTestFiles is true.
        // Default is 1.
        maxInstances: 1,

        browserName: 'chrome',
//        browserName: 'firefox',

        'chromeOptions': {
            // Get rid of --ignore-certificate yellow warning
            args: ['--no-sandbox', '--test-type=browser'],
            // --start-maximized

            // Set download path and avoid prompting for download even though
            // this is already the default on Chrome but for completeness
            prefs: {
                'download': {
                    'prompt_for_download': false,
                    'default_directory': '/datas/temp',
                }
            }
        }
    },

    onPrepare: function() {
    },

    onComplete: function() {
        console.log('Into global onComplete test function');
        testiCommons.disconnectMongo();
    },
};
  • ๊ด€๋ จ ์˜ˆ์ œ ํ…Œ์ŠคํŠธ
    ๋‚˜๋Š” ๋งŽ์€ ์กฐํ•ฉ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค:
    $elt.sendKeys(webdriver.Key.CONTROL, 'a', webdriver.Key.NULL, keys);
    ๋˜๋Š”
$elt.sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'a'));
$elt.sendKeys(keys);

๋˜๋Š”

browser.actions().keyDown(protractor.Key.CONTROL).sendKeys('a').perform();    
$elt.sendKeys(keys);
browser.actions().keyUp(protractor.Key.CONTROL).perform();

CTRL+A(ํ•„๋“œ์—์„œ ํ…์ŠคํŠธ ์„ ํƒ)๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๊ตฌ์„ฑ ๋ชจ๋‘ ์ง€๊ธˆ(์ด์ „์—๋Š”) ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

+1

๊ฐ๋„๊ธฐ: 4.0.14
ํฌ๋กฌ ๋“œ๋ผ์ด๋ฒ„: 2.26

Chrome 53์—์„œ๋Š” browser.actions.keyDown(protractor.Key.ALT).sendKeys('a').keyUp(protractor.Key.ALT).perform(); ๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
Chrome 56์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ๋„๊ธฐ 5.1.0
๋…ธ๋“œ 6.9.1
ํฌ๋กฌ ๋“œ๋ผ์ด๋ฒ„ 2.27
ํฌ๋กฌ 56.0

element(by.css('input')).sendKeys(arg1).then(function() { browser.actions().sendKeys(protractor.Key.ENTER).perform().then(callback); });

browser.driver.actions() .mouseDown(element($(cssSelector)).getWebElement()) .mouseMove({x: 0, y: amount}) // try different value of x .mouseUp() .perform();

๋‘˜ ๋‹ค ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ [ null ] ๋ฐ [ null, null, null, null ]๊ณผ ๊ฐ™์€ ์Šคํƒ ์ถ”์ ์ด ์—†๋Š” ์ด์ƒํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค์‹œ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

+1

๊ฐ๋„๊ธฐ: 4.0.14
ํฌ๋กฌ ๋“œ๋ผ์ด๋ฒ„: 2.26

Chrome 53์—์„œ๋Š” browser.actions.keyDown(protractor.Key.ALT).sendKeys('a').keyUp(protractor.Key.ALT).perform(); ๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
Chrome 56์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ, ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ๋„๊ธฐ: 5.4.2
ํฌ๋กฌ ๋“œ๋ผ์ด๋ฒ„: 2.41

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