量角器片状

Ion*_*chy 12 selenium automation jasmine protractor jasmine2.0

我维护一个复杂的Angular(1.5.x)应用程序,使用Protractor(2.5.x)进行E2E测试.我遇到了这种方法的问题,主要表现在测试看起来很脆弱的方式.在一个拉取请求中完美运行的测试在另一个拉取请求中失败.这涉及简单的定位器,例如by.linkTest(...).我调试了失败的测试,应用程序位于正确的页面上,链接存在且可访问.

有没有其他人遇到这些一致性问题?了解原因或解决方法?

ale*_*cxe 13

只是拒绝更多的端到端测试!

也就是说,这里有一些你可以做的事情来解决我们共同无情的"片状"敌人:

还有其他特定于问题的"技巧",如在文本框中慢速输入,通过JavaScript点击等.


Pri*_*har 2

是的,我想我们所有人都经历过这样的不稳定问题。

事实上,对于任何浏览器自动化工具来说,不稳定都是很常见的问题。然而,在 Protractor 的情况下,这种情况应该会更少,因为 Protractor 具有内置的等待考虑,仅在正确加载 dom 后才执行操作。但是,在少数情况下,如果您看到间歇性故障,您可能必须使用一些显式等待。

我更喜欢使用一些智能等待方法,例如:

function waitForElementToClickable(locator) {
        var domElement = element(by.css(locator)),
            isClickable = protractor.ExpectedConditions.elementToBeClickable(domElement);

        return browser.wait(isClickable, 2000)
            .then(function () {
                return domElement;
            });
    }
Run Code Online (Sandbox Code Playgroud)

browser.sleep()如果使用 2000 毫秒作为超时,您可以使用变量对其进行配置。有时,当我的智能等待不起作用时,我也会这样做。


归档时间:

查看次数:

2730 次

最近记录:

8 年,11 月 前