在 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");
我正在测试一个站点(在 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");