Using sendKeys to select multiple rows in a table

I have an html tableand have no problem clicking or double-clicking on some row. For this we use custom keyword code as follows:
@Keyword
def doubleClickRow(TestObject table, int row) {
WebElement cell = getTableCell(table, “tbody”, “td”, row, 0)
WebDriver webDriver = DriverFactory.getWebDriver()
new Actions(webDriver).doubleClick(cell).perform()
}

I need to select multiple rows i.e. click on row N, then do a Shift-click on row N+2, which in my app will highlight the 3 rows selected. When I attempt to Record this in Katalon, running the created TestCase does NOT capture the Shift-click. I have attempted to modify the method above using SendKeys as follows:
@Keyword
def shiftClickRow(TestObject table, int row) {
WebElement cell = getTableCell(table, “tbody”, “td”, row, 0)
println("Cell: " + cell.text)
WebDriver webDriver = DriverFactory.getWebDriver()
new Actions(webDriver).sendKeys(cell, Keys.chord(Keys.SHIFT, Keys.LEFT,
Keys.DOWN, Keys.LEFT, Keys.UP)).perform()
}

I was thinking the LEFT-DOWN would be a left mouse down, and a LEFT-UP would be a left mouse up. But this sequence merely selects the row but not simulate what I want. Can I get a Shift-click working on a Table cell in this fashion?

Thanks !!!

Hey Michael

My understanding of Keys.chord is that all the keys listed are sent “at once”:

Simulate pressing many keys at once in a “chord”
(https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html)

I’m wondering if you’d make progress by breaking the sequence up (i.e. issue perform() for each key combo required).