JavaScript量角器(Selenium)验证输入是否集中

Sco*_*ger 4 selenium protractor

我正在尝试测量元素是否在量角器中使用selenium webdriver进行聚焦.这是在AngularJS加载之前,所以我必须使用驱动程序,如下所示:

var ptor = protractor.getInstance(),
    driver = ptor.driver;
Run Code Online (Sandbox Code Playgroud)

我还需要知道如何使测试等到输入被聚焦.我必须等到一个模型被触发,所以输入没有聚焦半秒,如下所示:

window.setTimeout(function(){
  $("input#email").focus();
}, 500);
Run Code Online (Sandbox Code Playgroud)

知道如何在500ms后验证输入是否有焦点?

gle*_*tre 8

根据我对这个问题的回答,并根据你的情况调整它,它看起来像:

it('should focus on foo input', function () {
    // to wait 500ms+
    browser.driver.sleep(600);

    // using the Protractor 'element' helper
    // https://github.com/angular/protractor/blob/master/docs/api.md#element
    // var input = element(by.id('foo'));

    // using findElement with protractor instance
    var input = driver.findElement(protractor.By.id('foo'));

    expect(input.getAttribute('id')).toEqual(browser.driver.switchTo().activeElement().getAttribute('id'));
});
Run Code Online (Sandbox Code Playgroud)