我正在尝试使用 Protractor 中的 selenium webdriver 来测试某个元素是否聚焦。这是在 AngularJS 加载之前,所以我必须使用驱动程序,如下所示:
var ptor = protractor.getInstance(),
driver = ptor.driver;
我还需要知道如何让测试等待输入聚焦。我必须等到模型被触发,这样输入才不会聚焦半秒,如下所示:
window.setTimeout(function(){
$("input#email").focus();
}, 500);
知道如何验证输入在 500 毫秒后是否获得焦点吗?
最佳答案
基于我对 this question 的回答,并根据您的情况进行调整,它看起来像:
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'));
});
关于selenium - JavaScript Protractor (Selenium) 验证输入是否聚焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700567/