【问题标题】:How to simulate "Control + Space" in protractor test cases?如何在量角器测试用例中模拟“Control + Space”?
【发布时间】:2021-07-05 23:49:35
【问题描述】:

我们的项目中有一个场景 - 有一个文本区域,如果我们在其中单击“ctrl + 空格”,则会出现一个可见的列表/下拉列表。现在我想用我的量角器测试用例来模拟这种行为。

请在下面找到代码:

await letterBody.sendKeys(lettertestdata.LetterTemplate.letterBodyText); // to enter "this is automated test text"
await letterBody.sendKeys(protractor.Key.chord(protractor.Key.CONTROL, protractor.Key.SPACE));
        

第二行代码 sn-p 不起作用。它输入一个空格(空格字符)而不是 ctrl+space 行为。虽然 如果我写 await letterBody.sendKeys(protractor.Key.chord(protractor.Key.CONTROL, "a")) ,它会选择整个文本。

基本上 ctrl + A 有效,但 ctrl + space 无效。

有人可以帮忙解决一下吗。

附:我已经尝试了使用“”而不是 Key.Space 或使用 keydown 和 Control 然后 sendKeys 和 SPACE 和“”等的所有组合。

【问题讨论】:

    标签: angularjs selenium-webdriver automation protractor automated-tests


    【解决方案1】:

    似乎 Protractor 只是发送带有 Key.SPACE 的文字空格字符。 尝试使用element.sendKeys("\uE00D")Unicode for the SPACE key 仍然无法正常工作。

    我建议你尝试在元素上执行一个javascript事件dispatchEvent

    E.x:

        const ctrlSpace = 
           `var input = document.querySelector("input#'letter body']");                       
    
            input.dispatchEvent(new KeyboardEvent("keydown", {key: "", ctrlKey: true}));
            input.dispatchEvent(new KeyboardEvent("keyup", {key: "", ctrlKey: true}));`
    
        await browser.executeScript(ctrlSpace);
    

    这可能看起来“老套”,但我认为没有其他方法可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多