在 div 上发送键/非输入

Send keys on div / non input

我正在测试一个站点(在 Chrome 中),该站点具有与 Mac 类似的 "spotlight search" 功能,当您按下某个键时会显示输入。有一个指令负责此操作的逻辑,您可以在应用程序中的任何位置键入内容,只要它不是输入即可。我需要通过我的量角器测试发送密钥来测试此功能,但是当我瞄准 div 时我得到 unknown error: cannot focus element。是否可以在不是输入的元素上发送键?

您可能需要等待元素变得可见 visibilityOf Expected Condition and browser.wait():

var EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(by.css("div#myid")), 5000);

var div = element(by.css("div#myid"));
div.sendKeys("test");

此外,您可以尝试利用 browser.actions():

browser.actions().mouseMove(div).sendKeys('test').perform();

此外,您可能需要在发送键之前单击该元素:

div.click().sendKeys("test");