当前位置: 首页 > 面试题库 >

测试链接样式更改

卓致远
2023-03-14
问题内容

在我们的一项测试中,我们将测试 鼠标悬停a后的链接(元素)样式更改。 __

默认情况下,链接具有黑色字体,没有修饰,但是在鼠标上时,字体变为蓝色,并且链接文本带有下划线。这是相关的测试:

it("should change font style on mouse over", function () {
    expect(scope.page.forgotPassword.getCssValue("color")).toEqual("rgba(11, 51, 60, 1)");
    expect(scope.page.forgotPassword.getCssValue("text-decoration")).toEqual("none");

    browser.actions().mouseMove(scope.page.forgotPassword).perform();

    expect(scope.page.forgotPassword.getCssValue("color")).toEqual("rgba(42, 100, 150, 1)");
    expect(scope.page.forgotPassword.getCssValue("text-decoration")).toEqual("underline");
});

问题在于,每10个运行中就有1个运行失败,并显示以下错误消息:

预期’rgba(11,51,60,1)’等于’rgba(42,100,150,1)’。

预期“无”等于“下划线”。

我怀疑它在实际更改之前先读取了css样式。

如何使测试更可靠,更稳定?将不胜感激。


问题答案:

CSS更新中的这种异步性似乎是量角器/
webdriver应该能够等待的东西。您的应用程序在执行悬停时实现CSS更新方面是否有异常行为?是否以某种方式指定动画或更新延迟?

就是说,我认为有些时候量角器无法得知更新可能需要一些时间,因此我认为您可以使用其他方法编写测试。除了期望该值是您想要的值(并与浏览器中的更改竞争),您还可以将测试改写为“
wait-until-value-I-want-ups-ups”吗?(失败案例的速度稍慢且较难看,但希望这种情况很少见。)

检查将text-decoration其移至“下划线”似乎更简单(并且可能两者都会“立即”更改,因此您只需要等待一个,然后再检查另一个即可?)

因此删除:

expect(scope.page.forgotPassword.getCssValue("text-decoration")).toEqual("underline");

并使用类似以下未经测试的代码:

browser.wait(function() { 
 return scope.page.forgotPassword.getCssValue("text-decoration")).then(function(value) {
   return value === 'underline';
 });

(或为此使用“ 预期条件”基础结构?)

您应该能够在函数中隐藏一些丑陋的地方:

function waitForValue(valPromise, expectedVal) {
   return browser.wait(function() {
      return valPromise.then(function(value) {
         return value === expectedValue;
      });
   });
}

// Now your test can contain:
waitForValue(scope.page.forgotPassword.getCssValue("text-decoration"), 'underline');


 类似资料:
  • 样式链接是保持多个图层的样式同步的一种方法,例如,如果你让多个图层共享同一个样式,更新一个图层的边框,将会同样更新其他图层的边框。 要激活样式链接,可以点击检查器右上角的“链接(Link)”按钮,你将会看到检查器稍微下滑,显示出一行样式预设值的空间。按下+按钮来添加一个样式链接。然后选择另一个图层,点击你刚才创建的样式链接,来将样式链接到这个图层。图层的样式将会改变,现在当你改变其中任何一个图层的

  • 我想从src/main/resources链接yaml数据库创建规则。。在src/test/resources中,再添加一个带有示例数据的chagngelog。 src\test\resources\db\changelog\db。变更日志主机。亚马尔: 但它不起作用。所以,错误是:错误解析..//main/resources/db/changelog/db。变更日志主机。亚马尔 是否有其他选项将

  • 问题内容: href="http://google.com" rel="external"> LINK 问题答案: Felix Kling和三十点建议使用属性选择器()。 但这 仅在是 唯一 值 时才有效 。 如果要设置可能具有1个或多个值的链接的样式,则应使用属性选择器: (注意波浪号字符) 这样的链接的示例可能是:

  • 我使用Mocha作为测试框架来测试我的Node.js项目。我希望遵循BDD风格来组织我的测试/规范。 我曾经使用cucumber编写一些测试,cucumber使用BDD样式,比如givity-when-then子句。但对于摩卡来说,它使用了不同的语言来“描述”规范。您可以使用嵌套的Description语句来描述规范。我想知道命名摩卡测试的最佳做法是什么。谢了。

  • 问题内容: 我正在尝试使用Nightwatch.js构建自动化测试,以验证软件下载链接是否正常运行。我不想下载文件,因为它们很大,我只想验证相应的链接是否返回200 HTTP响应,以确保链接指向正确的位置。 对使用Nightwatch.js测试到可下载文件的链接的方法有任何想法吗? 这是我目前拥有的: 问题答案: 使用节点模块并发出“ HEAD”请求 例如:声明文件大小 test.js

  • 我正在创建这个WordPress主题,所有事情都进展顺利,除了一件事。我想为我的下一个/上一个页面链接设置样式,使下一个页面链接在右侧,而上一个页面链接在左侧。这是wordpress自动生成的链接,每当帖子数量达到最大值时,它就会添加到页面底部。我使用函数,我的html代码如下所示: 当然,我可以将float添加到 标记的样式中,但两个链接都将向右或向左浮动。我希望它们都在左右两边,我真的不希望在