selenium - JavaScript Protractor (Selenium) 验证输入是否聚焦

标签 selenium protractor

我正在尝试使用 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/

相关文章:

angularjs - 如何在交互测试 Protractor 时提供 "rootelement"选项

node.js - Protractor:同一页面有两个下拉菜单,只能从一个下拉菜单中成功选择元素

python - 值错误: could not convert string to float: '' in Python 3

google-chrome - 将 Chrome 设置为 RSpec/Capybara 的默认浏览器

google-chrome - Selenium for ChromeDriver和Chrome浏览器以及日志消息“仅允许本地连接”

python - 使用 selenium python 网络驱动程序从 Angular 单击表格中的所有行

Protractor/Chrome - UnknownError : The process has not exited yet therefore no result is available

javascript - 如何将 Jasmine 与 CucumberJS 一起使用?

angularjs - Protractor/Webdriver 在对浏览器进行一系列调用后失去同步

java - Action 移动不适用于 : Firefox versions:48 and Selenium: 3. 0.1