Получение цветового атрибута css с использованием Protractor - PullRequest
0 голосов
/ 17 декабря 2018

Мне нужно проверить цвет текста ссылки электронной почты.Ниже мой код:

it('Contact Text Validation', function(){

    expect (Contact_info_on_Login_screen.isDisplayed())


    var Email_Link = element(by.css("body > app-root > app-login > div > div > div > div > div > div.card-header.py-3.d-flex.justify-content-between.align-items-center > div > p > a:nth-child(1) > span:nth-child(1)"));

    var Col_Email = (Email_Link.getCssValue('color')).then(function(){
        browser.sleep(2000).then(function(){

            console.log(" The color for Email Link is :" + Col_Email);
        });
    });

}

Цвет того же элемента, как показано в свойстве css, как показано ниже.

enter image description here

соответствующий HTML-код: <p _ngcontent-c1="" class="m-4"> Questions about filling in the report data or access to the application, please call <a _ngcontent-c1="" class="text-link-blue" href=""><span _ngcontent-c1="">Admin</span> / <span _ngcontent-c1=""> Manager</span></a> at <a _ngcontent-c1="" class="text-link-blue" href=""> 123-456-7890</a>. For software issues, email <a _ngcontent-c1="" class="text-link-blue" href="">other person</a> . </p>

Когда я запустил это, я получил следующий вывод от транспортира:

[13:58:52] I / hosted - Использованиесервер селена на http://localhost:4444/wd/hub Запущен. Цвет для ссылки на электронную почту: ManagedPromise :: 643 {[[PromiseStatus]]: "в ожидании"}

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

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Вы неправильно разрешаете обещание, функция обратного вызова получает фактическое разрешенное значение в качестве аргумента :

//                                             v-----HERE-----v
Email_Link.getCssValue('color').then(function (actualColorValue) {
    console.log("The color for Email Link is :" + actualColorValue);
});
0 голосов
/ 18 декабря 2018
Email_Link.getCssValue('color').then(function (Value) {
    console.log("color is :" + Value);
});

https://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.getCssValue

вы можете проверить атрибуты двумя способами.

expect(element(element(by.css("body > app-root > app-login > div > div > div > div > div > div.card-header.py-3.d-flex.justify-content-between.align-items-center > div > p > a:nth-child(1) > span:nth-child(1)"))).getCssValue('color')).toBe('#000000');

или

            return Email_Link.getCssValue("color").then(function (value) 
                {               
                if (value[0]== "rgba(55, 199, 119, 1)") {
                    return true;
                }
                else {
                    return false;
                }
            });
0 голосов
/ 17 декабря 2018

попробуй

Email_Link.getCssValue('color')).then(function(Col_Email){
  console.log(" The color for Email Link is :" + Col_Email);
};
...