期望两个元素相等

时间:2015-04-28 23:35:52

标签: angularjs protractor

我想测试两个不同页面中的两个元素是否相等。这样做的原因是我需要检查已经在我的页面中工作的“复制”功能,因此这两个元素(在这种情况下为div)必须是缩进的:

我发现在量角器中有一个叫做“克隆”的元素对象的方法,但并没有解释它的目的。无论如何我试过这个:

// 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是否相同?

3 个答案:

答案 0 :(得分:2)

  

什么是“clone()”应该用于什么?

我最近创建了一个密切相关的问题,您可以按照其中的更新进行操作:

  

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

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

Age_10_to_11

答案 1 :(得分:0)

你可以试试这个:

expect(angular.equals(clone1, clone2).toBe(true));

在此处详细了解angular.equals:https://docs.angularjs.org/api/ng/function/angular.equals

答案 2 :(得分:0)

尝试没有克隆

browser.get("/page1");
var clone1 = element(by.id("firstElem"));

browser.get("/page2");
var clone2 = element(by.id("secondElem"));

expect(clone1).toEqual(clone2);