无法循环选择网格中的多个元素

时间:2019-05-06 17:55:32

标签: javascript angular protractor

我试图通过控制单击每行来从网格中选择多行,但似乎只单击了第一行。

这是我正在尝试的:

this.selectScan = async function (rows) {
    for (let i=0; i < rows.length; i++) {
        let scanRow = scansList.element(by.css("div[row=\"" + rows[i] + "\"]")).element(by.css("div[colid=\"originalFilename\"]"));
        await browser.actions()
            .mouseMove(scanRow)
            .keyDown(protractor.Key.CONTROL)
            .click()
            .keyUp(protractor.Key.CONTROL)
            .perform();
    }
};

我通过将以下行ID数组作为传递来调用它:

selectScan(["2", "3"]);

我还尝试将所有的按键和鼠标单击链接在一起,然后按照建议的here执行perform(),但这没有帮助。

1 个答案:

答案 0 :(得分:0)

我通过模拟CTLR keyDown,然后单击element然后释放CTRL键来使其工作:

public static Stream StringToStream(string s)
{
    byte[] buffer = Encoding.UTF8.GetBytes(s);
    return new MemoryStream(buffer);
}

public static string StreamToString(Stream s)
{
    s.Position = 0;
    byte[] buffer = new byte[s.Length];
    s.Read(buffer, 0, (int)s.Length);
    return Encoding.UTF8.GetString(buffer);
}