0

在我正在使用 CasperJS 测试的应用程序中,我们正在检查是否navigator.onLine为 false,以便在没有互联网连接时停用应用程序的某些部分。问题是在使用 CasperJS 进行测试时,这navigator.onLine似乎总是错误的。navigator.onLine当我真正在线时,我希望是真实的。

我添加了一个测试casper.start(url, function(){...}来检查的值,navigator.onLine它总是导致“离线”消息:

this.evaluateOrDie(function() {
    return navigator.onLine;
}, 'OFF LINE');

我搜索了控制此行为的选项,但只找到了localToRemoteUrlAccessEnabled. 我已将其设置为,true但没有帮助。

没有办法覆盖navigator.onLine任何一个的值。

请指教。

4

1 回答 1

1

原来这是一个 PhantomJS错误。值得庆幸的是,您似乎可以覆盖整个navigator对象以绕过此错误:

this.evaluateOrDie(function() {
    var fakeNavigator = {};
    for (var i in navigator) {
        fakeNavigator[i] = navigator[i];
    }
    fakeNavigator.onLine = true;
    navigator = fakeNavigator;

    return window.navigator.onLine;
}, 'OFF LINE');
于 2013-06-19T11:26:54.900 回答