angularjs - 期望两个元素相等

标签 angularjs protractor

我想测试两个不同页面中的两个元素是否相等。原因是我需要检查已在我的页面中运行的“复制”功能,因此两个元素(在本例中为 div)必须相同:

我发现 Protractor 中有一个用于元素对象的方法,称为“克隆”,但没有过多解释其用途。无论如何,我尝试了这个:

// In the first page:
browser.get("/page1");
var clone1 = element(by.id("firstElem")).clone();

// then navigating to the other page
browser.get("/page2");
var clone2 = element(by.id("secondElem")).clone();

// then the expectation of them to be equal
expect(clone1).toEqual(clone2);

但是由于堆栈跟踪非常重,期望失败了。还尝试比较:

expect(clone1 == clone2).toBeTruthy();

再次失败。

  • “clone()”的用途是什么?并且,

  • 如何比较两个不同页面中的两个 div 是否相同?

最佳答案

What is "clone()" supposed to be used for?

我最近创建了一个密切相关的问题,您可以关注那里的更新:

How do I compare two divs in two separate pages for being identical?

根据您的最终目标,您可以使用 getOuterHtml() 来比较元素的“外部 HTML”表示形式。 ,例如:

browser.get("/page1");
element(by.id("firstElem")).getOuterHtml().then(function(value) {
    browser.get("/page2");
    expect(element(by.id("secondElem")).getOuterHtml()).toEqual(value);
});

关于angularjs - 期望两个元素相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29931765/

相关文章:

javascript - Protractor 浏览器在 onPrepare 中未定义

javascript - i10n angularjs 分配翻译变量

javascript - 失去指令的约束力

javascript - Promise 和 for 循环 - 尝试验证多个元素文本

javascript - 失败: Cannot read property 'results' of undefined

javascript - 如何在 Protractor 中的选择元素中返回可用选项的列表?

javascript - Angular 拼接在移动 fromIndex、toIndex 时覆盖元素

javascript - 从数组元素中删除字符串符号

javascript - angularjs:在模板之外获取路由解析数据

在两个独立的 Angular 应用程序之间切换时,AngularJS e2e 测试挂起