使用WebDriverJS发送选项卡和输入密钥

时间:2014-04-02 23:39:15

标签: coffeescript webdriver webdriver-io

这看起来有点基本,但它一直给我带来麻烦。我有一个UL LI列表,我将其设置为标签。当我在浏览器中测试时,单击并将焦点放在第二个选项卡上,然后单击键盘上的TAB键并输入它,将焦点放在第三个选项卡上并选择它。

我正在尝试使用WebDriverJS使用chai,onecolor等在我的测试中使用以下coffeescript代码来模拟这个。部分是给我的问题是我可以让所有普通字符都很好但没有特别的使用此文档JSON WIRE PROTOCOL,我的酱汁实验室硒中的字符似乎有效。我使用的实现来自http://webdriver.io/,测试正在https://saucelabs.com/中运行。

  it 'tab key and enter works', (done) ->
    @timeout 10000
    @driver.waitFor '.tab.active', 10000, =>
      @driver.addValue '.tab:nth-child(2)', ['U+E004', 'U+E007'], (err) =>
        @driver.getElementCssProperty 'css selector', '.tab:nth-child(3)', 'background-color', (err, backgroundColor) =>
          @driver.getElementCssProperty 'css selector', '.tab:nth-child(3)', 'color', (err, color) =>
            onecolor('#ffffff').cssa().should.equal backgroundColor
            onecolor('#000000').cssa().should.equal color
            done()

1 个答案:

答案 0 :(得分:2)

您可以使用各种unicode字符。为此,您需要将键的名称设置为输入值(区分大小写)。例如:

client.addValue('.tab:nth-child(2)',['Tab','Enter']) // press TAB + ENTER

client.addValue('.tab:nth-child(2)',['Meta','c']) // copy text into clipboard

如果您不想将按键操作链接到任何输入字段,可以使用keys协议命令执行此操作:

client.keys(['Meta','c'])