我要与之交互的元素正在使用NodePort
,并包含几个可以拖动和排序的div。
NodePort
Service
在这种情况下该元素可见。我想知道是否只有某些元素,例如ng-sortable
可以通过这种方式与await viewTransaction.getEl('div#dragdrop-boundary').sendKeys(protractor.Key.ARROW_DOWN);
“交互”?
这里是Documentation,仅指定Failed: element not interactable
。
我的主要问题是“是否只有某些dropdowns
可以以特定的方式与sendKeys
进行交互?
这是标记的一部分
类和变量的名称已更改,以保护无辜的人
WebElement
答案 0 :(得分:0)
将密钥发送到Web元素时,量角器将序列发送到DOM中的该选定Web元素。如果是文本框,则发送的序列可以是一组字符串或键盘控制命令。如果在dropdown元素上发送诸如protractor.Key.ARROW_DOWN之类的命令,则该元素将具有执行该命令序列的能力。对于可排序的元素(我猜是类似拖放的东西),除非为webelement专门定义了其功能,否则箭头键将不起作用,即,如果我在UI中选择该元素并单击箭头键,则它应该移动下。但是诸如单击和拖动之类的内容可能可以与sendKeys一起使用。我还没有尝试过,所以不确定是否可以使用。
此外,如果您发送这样的密钥,则也要注意:
await viewTransaction.getEl('div#dragdropboundary').sendKeys(protractor.Key.ARROW_DOWN);
该键将被连续按下。您将必须在该键之后发送空键,例如:protractor.Key.NULL
await viewTransaction.getEl('div#dragdropboundary').sendKeys(protractor.Key.ARROW_DOWN, protractor.Key.NULL);