2015-04-28 3 views
3

Я хочу проверить, равны ли два элемента на двух разных страницах. Причина этого в том, что мне нужно проверить функцию «копировать», которая уже работает на моей странице, поэтому оба элемента (div в этом случае) должны быть indentical:Ожидайте, что два элемента равны

Я обнаружил, что существует метод в транспортире для элемента объекты, называемые «клон», но не очень сильно объясняют его цель. В любом случае я пробовал это:

// 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(); 

, который терпит неудачу снова.

  • Что такое «клон()», который должен использоваться? и,

  • Как сравнить два div на двух отдельных страницах за то, что они идентичны?

+0

должен ли разметка этих див должна быть точно равны? –

+0

Можете ли вы указать, что вы подразумеваете под равными? Точно такой же html, вплоть до пробелов и любых порядков атрибутов или классов? Точно такой же текст? –

+0

Да, это должны быть те же html и те же данные. Дело в том, что я использую один и тот же динамический шаблон для отображения того, что должен быть одним и тем же объектом, но с разными пользовательскими ключами, поэтому оба пользователя (владельцы одного и того же объекта) должны представлять один и тот же объект таким же образом. – Cyberdelphos

ответ

2

Что такое «клон() «Предполагается, что его используют?

Я недавно создал тесно связан вопрос, вы можете следить за обновлениями там:

Как я сравниваю две дивы в две отдельные страницы для того одинаковые?

В зависимости от вашей конечной цели, вы можете сравнить «внешний HTML» представление элементов с использованием getOuterHtml(), примера:

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

Это похоже на работу, но я не могу полностью понять, что он делает. Что такое getOuterHtml() для ?. Он говорит, чтобы получить внешний html, но это довольно плохое описание, можете ли вы рассказать об этом? – Cyberdelphos

+0

@Cyberdelphos внешний HTML - это в основном представление HTML элемента (https://developer.mozilla.org/en-US/docs/Web/API/Element/outerHTML). – alecxe

0

попробовать без клона

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

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

expect(clone1).toEqual(clone2); 
+0

Извините, я забыл упомянуть, что я уже пробовал это и получил тот же неудачный результат. – Cyberdelphos

Смежные вопросы