Транспортир: Как правильно установить ожидание getText () каждой функции? - PullRequest
0 голосов
/ 17 февраля 2019

Я тестирую страницу с отфильтрованными продуктами по заголовкам и хочу установить предположение о правильности теста: все заголовки на странице состоят из СЛОВА «Juvederm», а НЕ любых других заголовков («Emla»,«Coolsense» и т. Д.)).И должен найти ТОЛЬКО название по первому слову - Juvederm (не полное название: JUVEDERM® ULTRA SMILE Europe; JUVEDERM® VOLBELLA WITH LIDOCAINE Europe).

HTML одного продукта:

<div class="col-xs-12 col-sm-6 col-md-4 block_history_" style="">
<section class="product">
    <div class="product__holder">
        <a href="https://www.cosmedicalsupplies.com/.html" class="product__category"></a>
        <h2 class="product__title">
            <a href="juvederm-hydrate.html">JUVEDERM® HYDRATE™ Europe</a>
        </h2>
    </div>
</section>

Мой код console.log (s) правильно (если на странице доступно «Juvederm» - оно показывает «Прошло ", если нет -" НЕ ПРОЙДЕНО ":

it("products titles on the page should be Juvederm", () => { 
let product = $$(".product > div > h2 > a");

    browser.get(«…/advanced_search.html?keyword=juvederm");  

    product.each(function(element, index) {
        element.getText().then(function(text) {
            if(text.indexOf("JUVEDERM®") !== -1) {
                    console.log(«Passed»);
            }else{
                    console.log("NOT PASSED");
            }
       }); 
    }); 
});

Но я решила для себя, что мне нужно иметь ожидание. Как / где его установить? И какое ожидание должно быть? Когда я использую в«Если»

expect(order.product.getText()).toEqual(text);

Я получаю ошибку об отличиях текстов:

JUVEDERM® HYDRATE™ Europe toEqual JUVEDERM®

Когда я использовал в «Если»

browser.wait(() => {
    return EC.textToBePresentInElement(order.product);
    }, 3000, "ASDF");

Пройдено (ноМне нужно увидеть «JUVEDERM®», а не «ASDF»).

Пожалуйста, советуйте что-нибудь.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Используйте toContain() для проверки, включая подстроку или нет.

it("products titles on the page should be Juvederm", () => {
    let products = $$(".product .product__title > a");

    browser.get("advanced_search.html?keyword=juvederm");  

    products.each(product => {
        expect(product.getText()).toContain('JUVEDERM®');
    }); 
});
0 голосов
/ 18 февраля 2019

Вам нужно изменить оператор ожидания, как показано ниже.

expect(order.product.getText()).toContain('JUVEDERM®');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...