Задать вопрос
  • Как задавать в sendKeys Selenium webdriverjs комбинации клавиш?

    @ACOT-Murmansk Автор вопроса
    Благодарю за помощь.
    Сработало следующее:
    client.findElement({ name: 'MessageText' }).sendKeys(Key.CONTROL, "a", Key.NULL,"qu-qu");
    В моей версии selenium-webdriver'а не было определения Key, а также KeyDown и KeyUp.
    Я нашел в старой документации на selenium-webdriver-js данную конструкцию, перетащил к себе функцию Key c определениями кодов:
    Key = {
    NULL: '\uE000',
    CANCEL: '\uE001', // ^break
    HELP: '\uE002',
    BACK_SPACE: '\uE003',
    TAB: '\uE004',
    CLEAR: '\uE005',
    RETURN: '\uE006',
    ENTER: '\uE007',
    SHIFT: '\uE008',
    CONTROL: '\uE009',
    ALT: '\uE00A',
    PAUSE: '\uE00B',
    ESCAPE: '\uE00C',
    SPACE: '\uE00D',
    PAGE_UP: '\uE00E',
    PAGE_DOWN: '\uE00F',
    END: '\uE010',
    HOME: '\uE011',
    ARROW_LEFT: '\uE012',
    LEFT: '\uE012',
    ARROW_UP: '\uE013',
    UP: '\uE013',
    ARROW_RIGHT: '\uE014',
    RIGHT: '\uE014',
    ARROW_DOWN: '\uE015',
    DOWN: '\uE015',
    INSERT: '\uE016',
    DELETE: '\uE017',
    SEMICOLON: '\uE018',
    EQUALS: '\uE019',

    NUMPAD0: '\uE01A', // number pad keys
    NUMPAD1: '\uE01B',
    NUMPAD2: '\uE01C',
    NUMPAD3: '\uE01D',
    NUMPAD4: '\uE01E',
    NUMPAD5: '\uE01F',
    NUMPAD6: '\uE020',
    NUMPAD7: '\uE021',
    NUMPAD8: '\uE022',
    NUMPAD9: '\uE023',
    MULTIPLY: '\uE024',
    ADD: '\uE025',
    SEPARATOR: '\uE026',
    SUBTRACT: '\uE027',
    DECIMAL: '\uE028',
    DIVIDE: '\uE029',

    F1: '\uE031', // function keys
    F2: '\uE032',
    F3: '\uE033',
    F4: '\uE034',
    F5: '\uE035',
    F6: '\uE036',
    F7: '\uE037',
    F8: '\uE038',
    F9: '\uE039',
    F10: '\uE03A',
    F11: '\uE03B',
    F12: '\uE03C',

    COMMAND: '\uE03D', // Apple command key
    META: '\uE03D' // alias for Windows key
    };
    И всё заработало !
    Еще раз спасибо, Илья !
  • Как задавать в sendKeys Selenium webdriverjs комбинации клавиш?

    @ACOT-Murmansk Автор вопроса
    Не получилось.
    Возможно, это поможет решению проблемы:
    var client = new wd.Builder()
    .usingServer(SELENIUM_HOST)
    .withCapabilities({ browserName: 'firefox' })
    .build();
    client.get(URL); // URL - html-страничка, на которой есть элемент textarea (name: 'MessageText'), в котором есть несколько заполненных строк.
    Задача выделить эти несколько строк. Пытаюсь сделать это так:
    client.isElementPresent({ name: 'MessageText'}).then(function(found)
    {
    if (found)
    {
    client.findElement({ name: 'MessageText' }).then(function()
    {keyDown(Keys.CONTROL).sendKeys('a').keyUp(Keys.CONTROL);
    });
    }
    }
    );
    При выполнении получаю ReferenceError: keyDown is not defined

    Еще раз: у меня javascript (не java !) + Node js + selenium.