html - 为变量添加同级定位器

标签 html css selenium protractor automated-tests

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

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

这很好用。但我想改进并引入一个变量:

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

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

   rightPanel.addConditionClassMustBeClosedAtThatElement.isPresent();

可行吗?

最佳答案

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 .

关于html - 为变量添加同级定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38920961/

相关文章:

macos - 使用 Chrome 在命令行上运行 selenese Selenium 测试

java - 有什么方法可以分块而不是全套来划分和运行testng测试

jquery - 如何删除 anchor 标记后的文本 |查询

javascript - 从图像创建弹出窗口

javascript - colgroup 上的样式不起作用

html - 标签的右边框未显示

javascript - jQuery 在点击位置显示标记

java - 在企业代理后面使用 Selenium RemoteWebDriver (Java)

javascript - 多次使用 JavaScript 脚本

html - 为什么用户代理样式表会覆盖我在 Safari 7.0.0 中的 CSS 样式表