Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用量角器在给定URL完全加载之前返回browser.get_Angularjs_Node.js_Asynchronous_Protractor_Cucumberjs - Fatal编程技术网

Angularjs 使用量角器在给定URL完全加载之前返回browser.get

Angularjs 使用量角器在给定URL完全加载之前返回browser.get,angularjs,node.js,asynchronous,protractor,cucumberjs,Angularjs,Node.js,Asynchronous,Protractor,Cucumberjs,我正在用量角器和Cucumber来写一些测试,但我在某个点上被卡住了。在登录后的步骤中,我将使用量角器提供的browser.get(url)函数重新路由到另一个页面。但它总是在页面完全加载之前返回。到目前为止,我已经尝试了很多解决方案,但没有成功。我试过使用browser.wait、browser.get(url).then(函数(){//code when load}),但我得到了0个肯定的结果 这是我的密码: // Steps will be implemented here thi

我正在用量角器和Cucumber来写一些测试,但我在某个点上被卡住了。在登录后的步骤中,我将使用量角器提供的browser.get(url)函数重新路由到另一个页面。但它总是在页面完全加载之前返回。到目前为止,我已经尝试了很多解决方案,但没有成功。我试过使用browser.wait、browser.get(url).then(函数(){//code when load}),但我得到了0个肯定的结果

这是我的密码:

  // Steps will be implemented here
  this.Given(/^I am logged in as user \'([^\']*)\'$/, function (user, callback) {
    console.log('USER: ' + user);
    browser.driver.get('https://cit-was70-l06/ipa')
    browser.driver.findElement(by.xpath('my_xpath')).sendKeys(user);
    browser.driver.findElement(by.xpath('my_xpath')).sendKeys(user);
    browser.driver.findElement(by.xpath('my_xpath')).click().then(callback);
  });

  this.Then(/^The screen is shown, with title \'([^\']*)\'$/, function (title, callback) {
    console.log('Title from feature file: ' + title);
    var url = 'some/url/in/application/';
    browser.get(url).then(function(){
      // This portion executes before page is completely loaded.
      // So if I try to get any element, it throws me an error.
      // [15:32:13] E/launcher - "process.on('uncaughtException'" error, see 
      // launcher
      // [15:32:13] E/launcher - Process exited with error code 199
      // It works if I add static delay to wait for page load completely
      // but that will not be a good solution if I have too much pages to test
      callback();
    });
    console.log('After page laoad');
  });
任何建议的解决办法都将不胜感激

  [15:32:13] E/launcher - "process.on('uncaughtException'" error, see launcher
  [15:32:13] E/launcher - Process exited with error code 199
上述错误可能是由于各种原因造成的,主要与承诺有关。但它应该发出正确的信息。这里已经提供了捕获准确错误消息的方法

您可以更改上述论坛中提到的
量角器
依赖项中的
launcher.ts
文件来捕获错误,以便调试您的问题

量角器cumber
中编写步骤定义时,我建议您
返回
您的承诺,而不是
回调
,这样cumber将知道何时完成其异步操作

上述错误可能是由于各种原因造成的,主要与承诺有关。但它应该发出正确的信息。这里已经提供了捕获准确错误消息的方法

您可以更改上述论坛中提到的
量角器
依赖项中的
launcher.ts
文件来捕获错误,以便调试您的问题


量角器cumber
中编写步骤定义时,我建议您
返回
您的承诺,而不是
回调
,这样cumber将知道何时完成其异步操作

尝试下面的代码。检查是否有帮助

browser.get(url);
browser.waitForAngular();
then try to call your function.

请尝试下面的代码。检查是否有帮助

browser.get(url);
browser.waitForAngular();
then try to call your function.
使用量角器。ExpectedConditions检查成功登录后将显示的页面上任何元素的可见性。编写一个自定义方法,如下所示

如果显示元素,则使用browser.get()导航其他页面

使用量角器。ExpectedConditions检查成功登录后将显示的页面上任何元素的可见性。编写一个自定义方法,如下所示

如果显示元素,则使用browser.get()导航其他页面


相关:。相关:。没有lib dirit已修复并计划在下一个path版本中发布,您必须更改
launcher.js
文件,以下是详细的解决方法:没有lib dirit已修复并计划在下一个path版本中发布,您必须更改
launcher.js
文件,以下是详细的解决方法: