【问题标题】:Using protractor to test link colours [closed]使用量角器测试链接颜色 [关闭]
【发布时间】:2015-03-25 09:51:20
【问题描述】:

如何使用量角器测试悬停时链接的颜色?

我想模拟鼠标悬停在链接上,该链接从白色变为蓝色,然后我希望测试期望颜色 = 蓝色,悬停。

我目前用来测试的代码。

it('should redirect to the home page', function(){      
    element(by.css('ul.first_menu > li > a'));
    expect('ul.first_menu. > li > a'.getCssValue("color")).toEqual("rgba(11, 51, 60, 1)");

    browser.actions().mouseMove('ul.first_menu. > li > a').perform();

    browser.wait(waitForCssValue('ul.first_menu. > li > a', "color", "rgba(42, 100, 150, 1)"), 1000);
    browser.wait(waitForCssValue('ul.first_menu. > li > a', "text-decoration", "underline"), 1000);

    waitForCssValue = function (elementFinder, cssProperty, cssValue) {
            return function () {
                return elementFinder.getCssValue(cssProperty).then(function(actualValue) {
                return actualValue === cssValue;
                });
            };
    };
});

【问题讨论】:

  • 整个整个网络...一定花了好几年的时间!
  • @Paulie_D 如果您不打算提供帮助,请不要发表评论。告诉读者我已经做了很多搜索,但我根本找不到解决问题的方法,所以我来到这里。

标签: javascript html css testing protractor


【解决方案1】:

我已经完全按照你的要求做了。

这个想法是使用getCssValue() 并获得colortext-decoration 属性。然后,将链接悬停在 mouseMove() 上并等待 CSS 值更改

var elm = element(by.css('ul.first_menu > li > a'));
function waitForCssValue (elementFinder, cssProperty, cssValue) {
    return function () {
        return elementFinder.getCssValue(cssProperty).then(function(actualValue) {
            return actualValue === cssValue;
        });
    };
};

expect(elm.getCssValue("color")).toEqual("rgba(11, 51, 60, 1)");
expect(elm.getCssValue("text-decoration")).toEqual("none");

browser.actions().mouseMove(elm).perform();

browser.wait(waitForCssValue(elm, "color", "rgba(42, 100, 150, 1)"), 1000);
browser.wait(waitForCssValue(elm, "text-decoration", "underline"), 1000);

【讨论】:

  • 嗨,谢谢。这看起来很好。几个问题 1) 当你说scope.page.link 是我的元素时:这是什么意思?我的元素是'ul.firstmen > li > a '.......................这一切都可以放在it块内吗?
  • @PeterJones element(by.css('ul.firstmen > li > a'))scope.page.link 的示例。
  • 我就是这么想的,干杯。将在此之前给出,然后尽快让您知道结果!
  • Object ul.firstmen > li > a 没有方法'getCssValue'?
  • @PeterJones 你在制作元素吗?试试element(by.css('ul.firstmen > li > a'))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多