代码之家  ›  专栏  ›  技术社区  ›  nhrcpt

使用量角器检索CSS颜色属性

  •  2
  • nhrcpt  · 技术社区  · 6 年前

    我需要验证电子邮件链接文本的颜色。 以下是我的代码:

    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]我/托管-使用Selenium服务器 http://localhost:4444/wd/hub 起动 电子邮件链接的颜色为:ManagedPromise::643[[PromiseStatus]]:“Pending”

    我不知道我做错了什么。它应该返回颜色代码,相反,它显示承诺正在等待。

    3 回复  |  直到 6 年前
        1
  •  1
  •   Bharath Kumar S    6 年前
    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;
                    }
                });
    
        2
  •  2
  •   alecxe    6 年前

    您错误地解析了一个承诺,回调函数将接收实际的解析值 作为一个论点 :

    //                                             v-----HERE-----v
    Email_Link.getCssValue('color').then(function (actualColorValue) {
        console.log("The color for Email Link is :" + actualColorValue);
    });
    
        3
  •  1
  •   ic3b3rg    6 年前

    尝试

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