当前位置: 首页 > 面试题库 >

我如何断言一个要素是集中的?

申屠浩歌
2023-03-14
问题内容

我正在尝试验证是否在页面加载时设置了聚焦元素,这是我的测试之一。

这似乎是可行的,我可以使用元素资源管理器进行验证,但是Jasmine匹配器似乎对此并不满意。

这是我的代码:

var LoginPage = function () {
    this.basePath = browser.params.baseUrl;
    this.loginPart = "/#/login";
    this.usernameInput = element(by.model('username'));

    this.get = function () { ... }
}

it('should focus on the username field on load', function () {
     loginPage.get();
     expect(loginPage.usernameInput).toBe(browser.driver.switchTo().activeElement());
});

当页面加载时,字段本身正确地获得了焦点(并且元素资源管理器正确地使我可以通过来查询此内容browser.driver.switchTo().activeElement(),因此我认为该测试应该通过了,但事实并非如此。

相反,我得到了一个巨大的堆栈跟踪,其中没有提供任何有用的信息。


问题答案:

我想我找到了一种解决方法:

由于expect期望以一个承诺调用,因此您可以比较两个webElement的某些属性(您的输入和当前activeElement):

it('should focus on the username field on load', function () {
     loginPage.get();
     expect(loginPage.usernameInput.getAttribute('id')).toEqual(browser.driver.switchTo().activeElement().getAttribute('id'));
});


 类似资料:
  • 问题内容: 根据我如何断言一个元素是集中的?线程,您可以通过切换到来检查元素是否聚焦,并断言这与您期望获得焦点的元素相同: 就我而言,当前关注的 元素没有attribute。 我应该怎么做而不要检查? 额外的问题:另外,从我的解决方案尝试中可以看出,我似乎无法期望/断言一个元素(或Web元素)作为一个完整的对象。为什么? 我试过了: 但是失败并出现一个我什至无法理解的错误-存在巨大的回溯(在控制台

  • 无论是ES6promise还是蓝鸟promise、Qpromise等。 如何测试给定对象是否为Promise?

  • 我试图计算select元素中的选项数,以及DOM中某个类的元素数。 我需要比较这两个总数来得出赛普拉斯的断言。 我可以选择所需的选项,并使用each()对它们进行迭代,然后以这种方式递增一个计数器。然而,它是异步的,也是一个笨拙的解决方案。我确信我的cy.get()生成的对象有一个length属性,我就是看不懂它。 这是我期望的事情之一。它将未定义的日志记录到控制台。 我知道我的别名很好,并且我的

  • 本文向大家介绍如何判断一个元素文本是否换行?相关面试题,主要包含被问及如何判断一个元素文本是否换行?时的应答技巧和注意事项,需要的朋友参考一下 文本元素是否有/n/t或 white-space的取值 计算盒子的宽,计算所有文字的宽,比较两者 超过长度隐藏显示省略号的CSS

  • 本文向大家介绍C#中判断一个集合是否是另一个集合的子集的简单方法,包括了C#中判断一个集合是否是另一个集合的子集的简单方法的使用技巧和注意事项,需要的朋友参考一下 看到这个标题,我们首先想到的是循环遍历其中一个数组,判断数组中的每个元素是否都在另一个数组中出现了,以此来判断该数组是不是另一个数组的子集,但是这样做就太过复杂了,有没有简单一点的方法呢? 打个比方,有这样的两个集合: 现在需要判断sm