在使用appium执行量角器脚本时等待异步脚本结果超时 [英] Timed out waiting for asynchronous script result while executing protractor scripts with appium

查看:134
本文介绍了在使用appium执行量角器脚本时等待异步脚本结果超时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在量角器中运行多个测试时出现问题:在60010 s之后等待异步脚本结果超时
在登录脚本之后执行的教程脚本代码:



这里我在配置文件中使用的代码来自



PS:即使我为元素设置了错误的位置,我也有超时错误,而且找不到这个元素!好像那行代码点击进入教程按钮永远不会被执行




  • 是不是因为教程进行了ajax调用?




这里我的html代码:

 < / div>< / md-card-content> < / md-card><! -  end ngIf:!expandChart  - > < / DIV> < / DIV> < / DIV>< / MD-内容> < / DIV>< / DIV> <! -  Google Analytics:将UA-XXXXX-X更改为您网站的ID  - > <! - <脚本>  - > <! - 功能(A,N,G,U,L,A,R){A.GoogleAnalyticsObject = 1,A [1] = A [1] ||函数(){ - >!; <! - (A [l] .q = A [l] .q || [])。push(arguments)},A [l] .l = + new Date,a = n.createElement(g) , - > <! -  R = n.getElementsByTagName(克)[0],a.src = U,r.parentNode.insertBefore(A,R) - > <  - }(窗口,文件,脚本, HTTPS://www.google-analytics.com/analytics.js','ga);! - > <! -  ga('create','UA-XXXXX-X');  - > <! -  ga('send','pageview');  - > <! - < /脚本>  - > < script src =scripts / vendor.js>< / script> < script src =cordova.js>< / script> < script src =scripts / scripts.js>< / script> < script src =https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js>< / script> < script src =https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js>< / script> < script src =https://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-base64-min.js>< / script> < div class =introjs-overlaystyle =top:0; bottom:0; left:0; right:0; position:fixed; opacity:0.8;>< / div>< div class = introjs-helperLayerstyle =width:538px; height:366px; top:64px; left:195px;>< / div>< div class =introjs-tooltipReferenceLayerstyle =width:538px; height :366px;顶部:64px;左:195px;>< div class =introjs-tooltipstyle =left:546px;>< div class =introjs-tooltiptext>监视列表视图。向左滑动网格中的行以显示删除操作。< / div>< div class =introjs-bullets>< ul>< li>< a class =activehref = JavaScript的:无效(0); data-stepnumber =1>& nbsp;< / a>< / li>< li>< a href =javascript:void(0); data-stepnumber =2>& nbsp;< / a>< / li>< li>< a href =javascript:void(0); data-stepnumber =3>& nbsp;< / a>< / li>< li>< a href =javascript:void(0); data-stepnumber =4>& nbsp;< / a>< / li>< li>< a href =javascript:void(0); data-stepnumber =5>& nbsp;< / a>< / li>< li>< a href =javascript:void(0); data-stepnumber =6>& nbsp;< / a>< / li>< li>< a href =javascript:void(0); data-stepnumber =7>& nbsp;< / a>< / li>< li>< a href =javascript:void(0); data-stepnumber =8>& nbsp;< / a>< / li>< / ul>< / div>< div class =introjs-progressstyle =display:none; >< div class =introjs-progressbarstyle =width:12.5%;>< / div>< / div>< div class =introjs-arrow leftstyle =display:继承;>< / div>< div class =introjs-tooltipbuttons>< a class =introjs-button introjs-skipbuttonhref =javascript:void(0);> Don'再次显示它!< / a>< a href =javascript:void(0); class =introjs-button introjs-prevbutton introjs-disabledtabindex = -  1> Previous< / a>< a href =javascript:void(0); class =introjs-button introjs-nextbutton>下一步< / a>< / div>< / div>< / div>< / body>< / html> 

解决方案

最后我尝试通过添加此回调来解决我的问题

  describe(long asynchronous specs ,function(){
beforeEach(function(done){
done();
},10000);
});

这是来自jasmine的链接 Asynchronous_Support ,帮助我了解超时问题。
希望能帮到你,


I have a problem while running more than one test in protractor : Timed out waiting for asynchronous script result after 60010 s The code of tutorial script which is executed just after the login script :

Here the code i'm using in my config file from A Code proposed in another question but it didn't solve my problem !

onPrepare: function() {
  return browser.getProcessedConfig().then(function(config) {
    var browserName = config.capabilities.browserName;
    browser.manage().timeouts().setScriptTimeout(60000);

  });

PS : Even if i put an incorrect location for the element i have the error of time out and not this element cannot be found ! as if that line of code "the click into tutorial button" is never executed

  • Is it because tutorial make an ajax call ?

Here my html code :

</div></md-card-content> </md-card><!-- end ngIf: !expandChart --> </div> </div> </div></md-content> </div></div> <!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> <!--<script>--> <!--!function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){--> <!--(A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g),--> <!--r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r)--> <!--}(window,document,'script','https://www.google-analytics.com/analytics.js','ga');--> <!--ga('create', 'UA-XXXXX-X');--> <!--ga('send', 'pageview');--> <!--</script>--> <script src="scripts/vendor.js"></script> <script src="cordova.js"></script> <script src="scripts/scripts.js"></script> <script src="https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js"></script> <script src="https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js"></script> <script src="https://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-base64-min.js"></script> <div class="introjs-overlay" style="top: 0;bottom: 0; left: 0;right: 0;position: fixed;opacity: 0.8;"></div><div class="introjs-helperLayer " style="width: 538px; height:366px; top:64px;left: 195px;"></div><div class="introjs-tooltipReferenceLayer" style="width: 538px; height:366px; top:64px;left: 195px;"><div class="introjs-tooltip" style="left: 546px;"><div class="introjs-tooltiptext">Watchlist view. Swipe the row in the grid to the left to show the delete action.</div><div class="introjs-bullets"><ul><li><a class="active" href="javascript:void(0);" data-stepnumber="1">&nbsp;</a></li><li><a href="javascript:void(0);" data-stepnumber="2">&nbsp;</a></li><li><a href="javascript:void(0);" data-stepnumber="3">&nbsp;</a></li><li><a href="javascript:void(0);" data-stepnumber="4">&nbsp;</a></li><li><a href="javascript:void(0);" data-stepnumber="5">&nbsp;</a></li><li><a href="javascript:void(0);" data-stepnumber="6">&nbsp;</a></li><li><a href="javascript:void(0);" data-stepnumber="7">&nbsp;</a></li><li><a href="javascript:void(0);" data-stepnumber="8">&nbsp;</a></li></ul></div><div class="introjs-progress" style="display: none;"><div class="introjs-progressbar" style="width:12.5%;"></div></div><div class="introjs-arrow left" style="display: inherit;"></div><div class="introjs-tooltipbuttons"><a class="introjs-button introjs-skipbutton" href="javascript:void(0);">Don't show it again!</a><a href="javascript:void(0);" class="introjs-button introjs-prevbutton introjs-disabled" tabindex="-1">Previous</a><a href="javascript:void(0);" class="introjs-button introjs-nextbutton">Next</a></div></div></div></body></html>​

解决方案

Finally i tried to solve my problem by adding this call back

describe("long asynchronous specs", function() {
    beforeEach(function(done) {
      done();
    }, 10000);
    });

Here is a link from jasmine Asynchronous_Support that help me understand time out problems. Hope that can help you,

这篇关于在使用appium执行量角器脚本时等待异步脚本结果超时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆