如何执行Control +单击量角器中的多选选项?

时间:2017-11-23 07:51:33

标签: angular typescript testing protractor end-to-end

我试图点击多选框中的多个选项。但我无法执行相同的操作。

到目前为止我尝试了什么:

let input = $('input');
let option1 = input.all(by.cssContainingText('option','One'));
let option2 = input.all(by.cssContainingText('option','Two'));
option1.click();
browser.actions().mouseMove(option2).keyDown(protractor.Key.CONTROL).click().perform();

此解决方案基于this answer,但会引发错误:unknown error: at least an element or offset should be set。在调用click事件时,它还会在browser.pause()日志中显示Promise rejection was handled asynchronously

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

我设法解决了这个问题。 由于某种原因,我用来选择选项的方法不起作用。所以我修改了代码以不同的方式使用基于element的定位器。

let options = $$('multiselect-dropdown option');
options.get(0).click();
browser.actions()
    .mouseMove(options.get(1))
    .keyDown(protractor.Key.CONTROL)
    .click()
    .keyUp(protractor.Key.CONTROL)
    .perform();

现在一切正常。