【问题标题】:Add a locator at the same level to the variable给变量添加同级定位器
【发布时间】:2016-12-19 15:28:29
【问题描述】:

我的目标是找到一个同时具有 id 和 class 的元素。我是这样做的:

    return element(by.css('#right.closed')).isPresent();

这工作正常。但我想改进并引入一个变量:

  public static rightPanel = element(by.css('#right'));

我想使用 rightPanel 并使用该变量在同一级别上添加另一个条件:

   rightPanel.addConditionClassMustBeClosedAtThatElement.isPresent();

可行吗?

【问题讨论】:

  • 似乎是您在谈论元素链接概念。如果我是对的,是的,我们可以按照您的预期进行操作
  • 链接有效,但这会在第一个元素的子元素中查找。我想寻找那个元素而不是它的子元素。
  • 你可以为你想要处理的元素粘贴 html 代码吗?

标签: html css selenium protractor automated-tests


【解决方案1】:

addConditionClassMustBeClosedAtThatElement可以通过getAttribute()实现:

rightPanel.isPresent().then(function (isPresent) {
    rightPanel.getAttribute("class").then(function (classes) {
        console.log(isPresent && classes.indexOf("closed") >= 0);
    });
});

或者,如果要通过expect()添加期望:

expect(rightPanel.isPresent()).toBe(true);
expect(rightPanel).toHaveClass("closed");

toHaveClass is a custom jasmine matcher.

【讨论】:

  • rightPanel.isPresent().then(function (isPresent) { rightPanel.getAttribute("class").then(function (classes) { console.log(isPresent && classes.indexOf("已关闭" ) >= 0); }); });
猜你喜欢
  • 2012-08-14
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 2014-08-18
  • 2016-11-17
相关资源
最近更新 更多