admin管理员组

文章数量:1323336

How can I use copy and paste with protractor on MAC with Chrome?

newInput.sendKeys(protractor.Key.chord(browser.controlKey, "a"));
newInput.sendKeys(protractor.Key.chord(browser.controlKey, "c"));
newInput.sendKeys(protractor.Key.chord(browser.controlKey, "v"));

I have "undefined" when I use this code

I use this code from this post Using cross-platform keyboard shortcuts in end-to-end testing but it doesn't work:

browser.controlKey = protractor.Key.CONTROL; //browser.controlKey is     a global variable and can be accessed anywhere in the test specs
browser.getCapabilities().then(function(capabilities){
    if(capabilities.caps_.platform === "MAC")
        browser.controlKey = protractor.Key.COMMAND;
});

elm.sendKeys(protractor.Key.chord(browser.controlKey, "c"));

How can I use copy and paste with protractor on MAC with Chrome?

newInput.sendKeys(protractor.Key.chord(browser.controlKey, "a"));
newInput.sendKeys(protractor.Key.chord(browser.controlKey, "c"));
newInput.sendKeys(protractor.Key.chord(browser.controlKey, "v"));

I have "undefined" when I use this code

I use this code from this post Using cross-platform keyboard shortcuts in end-to-end testing but it doesn't work:

browser.controlKey = protractor.Key.CONTROL; //browser.controlKey is     a global variable and can be accessed anywhere in the test specs
browser.getCapabilities().then(function(capabilities){
    if(capabilities.caps_.platform === "MAC")
        browser.controlKey = protractor.Key.COMMAND;
});

elm.sendKeys(protractor.Key.chord(browser.controlKey, "c"));
Share edited May 23, 2017 at 10:29 CommunityBot 11 silver badge asked Jan 21, 2016 at 13:23 Jérémie ChazelleJérémie Chazelle 1,8185 gold badges35 silver badges75 bronze badges 3
  • 1 this could help : stackoverflow./questions/33263091/… – Hacketo Commented Jan 21, 2016 at 13:27
  • What browser are you trying to sendKeys() to? There is an issue with selenium webdriver for not being able to sendKeys() in mac platform. – giri-sh Commented Jan 21, 2016 at 13:32
  • My browser is "Chrome" – Jérémie Chazelle Commented Jan 21, 2016 at 13:34
Add a ment  | 

2 Answers 2

Reset to default 7

This is a known chromedriver problem. Unfortunately, sending keyboard shortcuts from Protractor/WebDriverJS is not going to work on Chrome+Mac.

In our project, we've moved all of the tests that involve using keyboard shortcuts to Firefox:

var firefox_only_specs = [
    "../specs/sometest1.spec.js",
    "../specs/sometest2.spec.js"
];

exports.config = {
    multiCapabilities: [
        {
            browserName: "chrome",
            chromeOptions: {
                args: ["incognito", "disable-extensions", "start-maximized"]
            },
            specs: [
                "../specs/*.spec.js"
            ],
            exclude: firefox_only_specs
        },
        {
            browserName: "firefox",
            specs: firefox_only_specs
        }
    ],

    // ...
}

protractor.Key.COMMAND has been tagged as a wontfix in Protractor's github for MAC. Here is a solution I adapted from keyboard mands for left-handed users

Universal copy+paste alternative working for MAC, LINUX, and WINDOWS:

// This does a select all
element1.sendKeys(protractor.Key.chord(protractor.Key.CONTROL, protractor.Key.SHIFT, protractor.Key.HOME));

 // This copies the text
element1.sendKeys(protractor.Key.chord(protractor.Key.CONTROL, protractor.Key.INSERT));

// This pastes it in another element
element2.sendKeys(protractor.Key.chord(protractor.Key.SHIFT, protractor.Key.INSERT));

本文标签: javascriptHow can I use copy and paste with protractor on MAC with ChromeStack Overflow