0

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

我正在尝试使用 WebDriverJS 在我的测试中使用 chai、onecolor 等使用以下咖啡脚本代码来模拟这一点。部分是给我的问题是我可以让所有正常字符正常运行,但似乎没有特殊字符使用此文档JSON WIRE PROTOCOL在我的酱汁实验室 selenium 工作。我正在使用的实现来自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()
4

1 回答 1

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'])
于 2014-04-07T19:39:48.920 回答