量角器-哪些元素是“可交互的”?

时间:2019-12-23 19:00:05

标签: typescript testing selenium-webdriver protractor ng-sortable

我要与之交互的元素正在使用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

1 个答案:

答案 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);