量角器版本5.2.0(最新) - 如何模拟键盘按键 - TAB,ENTER?

时间:2017-11-10 12:11:08

标签: protractor

以下不工作: 。browser.actions()的SendKeys(protractor.Key.TAB); 。browser.actions()的SendKeys(protractor.Key.ENTER);

it('validate the upload portfolio feature', function() {

    //loginPage.loginToPRA(); // not needed

    element(by.custLoc(ObjRep.validateUploadPortfolio.portUpload)).click();

    browser.actions().sendKeys(protractor.Key.TAB);
    browser.actions().sendKeys(protractor.Key.ENTER);

    browser.sleep(3000);
});

在浏览代码按钮定位器中:

class="text-white background-teal cursor-pointer overflow-hidden padding-vertical-5 padding-horizontal-20 border-radius-4 border-shadow vertical-align-middle"

1 个答案:

答案 0 :(得分:2)

您正在混合两种键输入方式。

Selenium Way:browser.actions()

如果您使用browser.actions().,则使用Selenium-Way,必须以perform()结束才能执行操作。

查找here in this Protractor API简短描述以及指向详细的Selenium描述的链接以及所有可能的关键操作。

量角器功能element.sendKeys()

此处您实际上并不需要browser.actions().,而是element.,因为根据Protractor API description here .sendKeys()element之后是属性/函数}}

所有在Code 中描述(我只使用element.sendKeys(),所以我没有测试Selenium-Way)

//SELENIUM-ACTION SEQUENCE IN PROTRACTOR
//Press first TAB, execute it, then Enter, execute it. The current cursor position doesn't matter
browser.actions().sendKeys(protractor.Key.TAB).perform();
browser.actions().sendKeys(protractor.Key.ENTER).perform();

//Press TAB then ENTER fast one after the other
browser.actions()
    .sendKeys(protractor.Key.TAB)
    .sendKeys(protractor.Key.ENTER)
    .perform();

//PROTRACTOR
//focuses first the cursor to "element", then presses [TAB]
element.sendKeys(protractor.Key.TAB);
//focuses first the cursor to "element", then presses [ENTER]
element.sendKeys(protractor.Key.ENTER);