当前位置: 首页 > 知识库问答 >
问题:

在等待量角器与“浏览角度站点”页面同步时出现“量角器”错误

干茂才
2023-03-14

我试图遵循量角器官方网站上的量角器教程,但我甚至无法完成步骤0。

我在用量角器

之后,我一直在遵循教程的第0步。我有配置。js文件和test-spec.js文件如下:

配置js公司

 exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      specs: ['test-spec.js']
    };

测试规范js

describe('Protractor Demo App', function() {
    it('should have a title', function() {
        browser.get('http://juliemr.github.io/protractor-demo/');
        expect(browser.getTitle()).toEqual('Super Calculator');
    });
});

当我运行protector量角器配置时。我得到了以下错误:

[15:15:13] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
DEPRECATION: Setting randomizeTests directly is deprecated, please use the random option in `configure`
DEPRECATION: Setting specFilter directly on Env is deprecated, please use the specFilter option in `configure`
Started
F

Failures:
1) Protractor Demo App should have a title
  Message:
    Expected [object Promise] to equal 'Super Calculator'.
  Stack:
    Error: Expected [object Promise] to equal 'Super Calculator'.
        at 
        at UserContext. (/home/srubio/Escritorio/Protractor/test-spec.js:5:32)
        at 

1 spec, 1 failure
Finished in 0.009 seconds
/home/srubio/n/lib/node_modules/protractor/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:3190
        throw arguments[0];
        ^

Error: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined.  This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping.  See http://git.io/v4gXM for details"
    at ProtractorBrowser. (/home/srubio/n/lib/node_modules/protractor/built/browser.js:354:27)
    at Generator.next ()
    at fulfilled (/home/srubio/n/lib/node_modules/protractor/built/browser.js:4:58)
    at processTicksAndRejections (internal/process/next_tick.js:81:5)

共有1个答案

谷梁向荣
2023-03-14
匿名用户

更新此答案

量角器版本6.0使用selenium版本4,这是第一个放弃对控制流支持的selenium版本。控制流允许量角器执行以下代码:

browser.get('http://google.com');
expect(browser.getTitle()).toEqual('Super Calculator');

同步的方式。

到目前为止,控制流一直用于以用户友好的方式处理webdriverJSpromise的异步性质。然而,一旦es8异步/等待风格的promise处理得到支持,就决定不推荐控制流,并建议用户继续利用异步/等待。

6.0是量角器的最新版本,我相信它是在3天前(19年3月22日左右)发布的,它放弃了对以前默认启用的控制流的支持。显然,教程文档尚未更新以反映这一点,但我相信这就是为什么您会看到这个问题。

展望未来,您将需要使用async/wait语法(在我看来,这实际上更具可读性和易用性)

请尝试以下代码:

配置js公司

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['test-spec.js']
};

测试规范js

describe('Protractor Demo App', function() {
    it('should have a title', async function() {
        await browser.get('http://juliemr.github.io/protractor-demo/');
        expect(await browser.getTitle()).toEqual('Super Calculator');
    });
});

更新:如果您尝试将SELENIUM\u PROMISE\u MANAGER:true添加到您的配置中。js,可以让您在编写演示时继续进行。

 类似资料:
  • 问题内容: 我的档案是: 我的节点项目在9001端口上运行并在监听。 我的测试是: 我得到的错误是: 我究竟做错了什么?? 问题答案: (非常简短的版本): 使用代替。 较长的版本: Protractor基本上是Selenium及其Javascript WebDriver代码的包装。量角器添加代码以等待Angular“安顿下来”(即完成$ digest循环),然后继续测试代码。但是,如果您的页面上

  • 问题内容: 我正在测试AngularJS应用程序,并且对量角器非常新。每次我打开浏览器时,它都会打开,然后等待超时,然后在cmd上引发以下错误。 我尝试增加超时限制,但始终会收到此错误。我也尝试过使用所有这些: 该页面正确加载,并且如果我使用Eclipse和Selenium与按钮对象进行交互,则可以正常工作。 只有量角器出现同步问题。请帮忙。 问题答案: 量角器超时的可能原因: 您的网页未以预期的

  • 问题内容: 我正在使用小型AngularJS应用测试量角器。 这是测试: 控制器: 草稿服务: 使用量角器运行此测试会导致以下错误: 但是,如果在控制器中更改此行: 对此: 测试失败,但未达到预期目的,但更重要的是:它不会超时。 启用query()时,在浏览器中手动运行应用程序以及查看Protractor打开的浏览器窗口时,转发器均会正确显示API返回的数据。 当服务与API通信时,为什么Prot

  • 我正在angularjs应用程序上使用量角器4.0.14。 我们正在执行一个异步调用,使用加载栏需要 30 秒。所以我正在等待一个元素在那段时间之后出现。加载栏总是去100%,然后间歇性地卡在100%,因为浏览器.wait,但大多数时候它工作并显示我正在寻找的元素。 如果没有,它只是卡在100%,获得超时,然后继续测试。只有量角器才会发生,在浏览器上手动操作,它永远不会卡住。 我尝试使用忽略同步为

  • 问题内容: 我有一个单击按钮并重定向到用户仪表板的测试。发生这种情况时,Webdriver返回: 为了解决这个问题,我将插入到发生重定向的位置,并假设我的CPU使用率很低,这可以解决此问题。但是,2000 ms是任意的并且很慢。是否有类似的东西会等到Angular在重定向页面上加载之前? 问题答案: 您认为这样的事情对您有用吗?最多需要等待10秒,URL才能包含文本“ pageTwo”或您输入的任