ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-Selenium WebDriver和通用等待或延迟

2019-11-20 00:59:13  阅读:290  来源: 互联网

标签:angularjs selenium selenium-webdriver javascript python


因此,我急切地想寻找一种方法来延迟WebDriver中的某些执行,但是我似乎找不到.

我尝试对其进行黑盒测试的Web应用程序可以使用ajax调用,但是这些ajax调用不会在DOM上呈现任何内容,因此我不能使用显式等待.同样,隐式仅适用于find_element语句,再次将不再​​有用.

我使用time.sleep()取得了成功,但我希望有更好的方法来延迟执行.

解决方法:

据我了解(现在是凌晨1点,我可能会错过一些东西),您需要将测试与AngularJS同步,等待未完成的请求和angular的“解决”.

这就是在Javascript世界中protractor可以完美解决的问题-它始终知道Angular准备就绪的时间,并且可以使测试更加自然,甚至不用考虑同步问题-它可以顺畅地工作:

You no longer need to add waits and sleeps to your test. Protractor
can automatically execute the next step in your test the moment the
webpage finishes pending tasks, so you don’t have to worry about
waiting for your test and webpage to sync.

对于Python,有一个pytractor项目听起来像您应该评估的东西:

pytractor is an extension to the Selenium bindings for Python. Its
goal is to make testing of angular.js applications easier with Python.

It is built on some parts of protractor, the “official” Javascript
E2E/Scenario testing framework for Angular.js.

作为一个危险信号,请注意该项目未得到积极维护.至少,您可以研究源代码并使用代码中引入的思想.

请注意,内部量角器和pytractor注入异步执行的客户端脚本.为了等待Angular准备就绪,它们都使用angular.getTestability(el).whenStable()(source).

也可以看看:

> Understanding execute async script in Selenium
> Using Angular JS(Protractor) with Selenium in Python
> Force Selenium to wait for AngularJS

标签:angularjs,selenium,selenium-webdriver,javascript,python
来源: https://codeday.me/bug/20191120/2040333.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有