等待使用python的角度

时间:2017-06-29 15:10:35

标签: python webdriver protractor

我找到了这个答案但是我没有测试angularjs app但是没有测试角度2。 Testing AngularJS with Selenium

寻找类似的js代码来执行以等待角度完成。

我想出了一个装饰师的想法,我会在触摸应用程序之前等待,但我不会这样做。知道脚本会想要什么,我看了一下clientsidescripts.js,但我不是一个Angular开发人员,似乎它得到了ng1hooks和可测试性......所以也许我可以添加一些零碎的东西并将它们放入一个js文件中并执行它,例如喜欢这个家伙https://github.com/kpodl/pytractor/blob/master/src/pytractor/protractor/extracted/waitForAngular.js,但这是从2015年开始。

def angular_wait_required(f):

        def wrapped_f(self, *args, **kwargs):
            self.driver.set_script_timeout(30)
            self.driver.execute_async_script(WAIT_FOR_SCRIPT)
            f(self, *args, **kwargs)
        return wrapped_f

1 个答案:

答案 0 :(得分:1)

WAIT_FOR_SCRIPT = """
        callback = arguments[arguments.length - 1];
        try {
            var testabilities = window.getAllAngularTestabilities();
            var count = testabilities.length;
            var decrement = function() {
            count--;
            if (count === 0) {
              callback('completed');
                }
            };
            testabilities.forEach(function(testability) {
                testability.whenStable(decrement);
            });
         } catch (err) {
            callback(err.message);
         }
        """

这是我最终提出的