我是Test Automation的新成员。我想使用Selenium来测试由角度js完成的web应用程序。有人能告诉我如何从一个基本的应用程序开始,并且你有一个角度js应用程序的例子。如何使用硒测试角度js Web应用程序?
0
A
回答
1
对于E2E-测试AngularJS应用中,有一个专门的包称为Protractor
,这本身就是围绕WebDriverJS
一个方便的包装 - 硒的JavaScript绑定。
一个很好的开始是Tutorial。
1
我最近发现GitHub项目叫做jProtractor。它基于Selenium WebDriver
实施自己的NgWebDriver
。我注意到的最重要的功能是,在调用原始方法之前,大多数基本方法都等待完成AngularJS脚本。
请注意,我自己没有尝试过,所以我不能说它的工作效果如何,但它目前处于开发阶段,可能包含错误和缺少功能。
希望它有帮助。
1
以下两个预期条件可能会做你需要做的一切,使测试角站点容易。
这一次将是最常用的预期状态,你会在你的代码:
public static ExpectedCondition angularHasFinishedProcessing() {
return new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
String hasAngularFinishedScript = "var callback = arguments[arguments.length - 1];\n" +
"var el = document.querySelector('html');\n" +
"if (!window.angular) {\n" +
" callback('false')\n" +
"}\n" +
"if (angular.getTestability) {\n" +
" angular.getTestability(el).whenStable(function(){callback('true')});\n" +
"} else {\n" +
" if (!angular.element(el).injector()) {\n" +
" callback('false')\n" +
" }\n" +
" var browser = angular.element(el).injector().get('$browser');\n" +
" browser.notifyWhenNoOutstandingRequests(function(){callback('true')});\n" +
"}";
JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
String isProcessingFinished = javascriptExecutor.executeAsyncScript(hasAngularFinishedScript).toString();
return Boolean.valueOf(isProcessingFinished);
}
};
}
它会等待角度是在它认为的状态,该网站是准备自动化测试去(这几乎从保护程序代码库中被窃取,并用Java包装)。你将需要有一个脚本超时设置为它工作,虽然:如果您使用的角度动画在屏幕上移动的东西,你会想这
webdriver.manage().timeouts().setScriptTimeout(15, TimeUnit.SECONDS);
最后:
public static ExpectedCondition angularAnimationsAreComplete() {
return new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
int animatingElements = driver.findElements(By.className("ng-animate")).size();
return animatingElements == 0;
}
};
}
角动画将类“ng-animate”添加到它正在移动的所有元素。这种情况将等到该类不再适用于任何元素,或者换句话说,它将等待,直到所有动画完成。
相关问题
- 1. 使用硒在Web上测试Flash应用程序
- 2. 如何使用硒web驱动程序测试Magento项目?
- 3. 如何使用硒执行Web应用程序的可伸缩性测试
- 4. JMeter如何测试Web应用程序
- 5. 如何使用硒测试多个应用程序的协作
- 6. 使用DRT测试Web应用程序
- 7. 测试Web应用程序
- 8. Web应用程序测试
- 9. 测试Web应用程序?
- 10. 如何在单元测试中去引导角度js应用程序?
- 11. 使用全局变量测试角度4应用程序
- 12. 角度e2e测试用于测试非角度应用
- 13. 如何使用硒测试?
- 14. 如何使用mocha-phantomjs测试Node js应用程序
- 15. 如何使用仪器测试iOS Web应用程序UIAutomation
- 16. 如何在Java Web应用程序中使用DataSource测试DAO?
- 17. 如何使用角度测试文件?
- 18. 黄瓜/水豚+角度:测试通过使用硒驱动程序,但不poltergeist
- 19. Rails 3.2硒web驱动程序测试
- 20. 如何使用角度JS
- 21. 如何使用角度JS
- 22. 角度js测试与Grunt
- 23. 如何使用Sahi测试工具处理角度js应用程序的文件上传?
- 24. 用于角度应用程序组件测试的模拟API
- 25. 如何将角度2应用程序发布到Azure Web应用程序中?
- 26. 防止在角度js web应用程序中使用更少的时间
- 27. Rails应用程序使用硒但不用于测试 - 如何组织?
- 28. 如何在硒测试中处理外部应用程序?
- 29. 我可以使用硒webdriver测试iphone应用程序吗?
- 30. 如何使用量角器测试角度 - 使用选择?
谢谢,但我可以只用硒来测试吗? – Emna
@Emna谢谢,好吧,你的意思只是纯粹的'WebDriverJS'? – alecxe
是的,我对此没有太大想法。我刚刚使用Appium进行移动自动化。 我想知道如果只有硒可能测试一个角度js web应用程序? 如果是的话,我可以从它开始理解基本概念吗? – Emna