第一次尝试使用Protractor。我希望能够连续运行多个套件。我有一个应用程序,它是一个具有不同场景的大Angular形式。我对每种情况都有预期的结果,并且想输入一个命令并运行每个测试。我以为我可以只使用逗号分隔,例如:protractorconfig.js--suite=rf1_breast,rf1_ovarian,rf1_pancreatic但是我得到了错误:Error:morethanoneconfigfilespecified这很奇怪,因为在我运行Protractor的目录中只有一个配置文件。这是我的config.js:exports.config={seleniumAddr
我想双击一个元素,但在文档API中找不到执行此操作的方法。我找到了一些可以追溯到2013年的引用文献,但我知道情况发生了很大变化。谁能帮忙告诉我如何执行双击。谢谢 最佳答案 永远记住protractor是webdriverjs的包装器.doubleClick()在browser.actions()中可用:browser.actions().doubleClick(element(by.id('mybutton'))).perform(); 关于javascript-如何使用Protrac
如果这是一个刚开始进行网络自动化测试的新手问题,我深表歉意。我想测试登录屏幕页面。查找名称和密码文本字段很容易(仅使用by.model),但是我在使用脚本定位登录按钮时遇到了问题。我四处搜索,我应该能够使用element(by.css(.className))通过className找到一个元素,但是这不起作用,我总是得到NoSuchElementError:使用定位器未找到元素:By.cssSelector(".btnbtn-lgbtn-primarybtn-block")。知道我做错了什么吗?提前致谢登录按钮HTML:login我的代码:describe('Testlogin',fu
我的一个测试期望错误消息文本是多个值之一。自getText()返回promise我不能使用toContain()Jasmine匹配器。自protractor以来,以下内容将不起作用(jasminewd底层)不会解决匹配器第二部分中的promise,toContain()在这种情况下:expect(["UnknownError","ConnectionError"]).toContain(page.errorMessage.getText());问题:有没有办法用jasmine+protractor检查一个元素是否在一个数组中,其中一个元素是一个promise?换句话说,我正在寻找toC
为AngularJS编写ProtractorE2E测试时处理页面对象模型的正确方法是什么?我觉得我应该将它们写在单独的文件中(如homepage.js、page2.js等),然后根据需要将它们以某种方式包含在规范中,例如模块。但是,我不知道如何注入(inject)它们。将不胜感激任何建议。谢谢! 最佳答案 将它们保存在单独的文件中,并使用Node的require引入您需要的任何帮助程序或页面对象。看看这个super简单的例子:https://github.com/juliemr/ng-page-e2e/blob/master/tes
Protractor是构建在WebDriverJS之上的Angular应用程序的端到端测试框架。我是网络测试领域的新手,我想弄清楚使用Protractor而不是直接使用WebDriverJs有什么优势。Protractor的附加值是什么? 最佳答案 Protractor的附加值是Protractor了解Angular。这有一些优点,例如:您不必构建等待语句来等待Angular处理,因为Protractor知道Angular何时仍然忙碌并等待它。您可以在Angular绑定(bind)、Angular转发器等对象上添加额外的选择器。
编写适用于网站每个页面的断言的最佳方式是什么?我正在测试我网站的页脚中是否存在某个元素,因此该元素应该存在于所有页面上。我正在考虑编写一个单独的文件来测试网站的模板元素,然后将其包含在所有规范中。不过好像没有其他人在这样做? 最佳答案 首先,为了编写更清晰的测试并更好地了解目标站点的组成,请应用PageObjectpattern并将网页的各个部分拆分为不同的页面对象。例如,footer、header可以而且应该是单独的页面对象,可以在您网站的不同网页中重复使用。关于该主题的更多信息:UsingPageObjectstoOrganiz
我们一直在使用PageObjectpattern有一会儿。它绝对有助于组织端到端测试,并使测试更具可读性和简洁性。作为UsingPageObjectstoOrganizeTestsProtractor文档页面向我们展示,我们将每个页面对象定义为一个函数,并使用new来“实例化”它:"usestrict";varHeaderPage=function(){this.logo=element(by.css("div.navbar-headerimg"));}module.exports=HeaderPage;用法:"usestrict";varHeaderPage=require("./.
我们开发了一组相当大的自定义jasmine匹配器,有助于使我们的代码更简洁并避免代码重复。我注意到一些自定义jasmine匹配器使用===相等性测试和一些jasmine.matchersUtil.equals。示例:toHaveHandCursor:function(){return{compare:function(actual){return{pass:actual.getCssValue("cursor").then(function(cursor){returncursor==="pointer";})};}};},toBeActive:function(){return{co
故事和动机:我们有一个相当庞大的端到端Protractor测试代码库。有时,测试会等待特定修复的实现——通常作为TDD方法的一部分,并演示问题是如何重现的以及预期的行为是什么。我们目前正在做的是使用Jasmine的pending(),里面有一个Jira问题编号。示例:pending("Missingfunctionality(AP-1234)",function(){//sometestingisdonehere});现在,我们想知道何时可以将pending()重命名为it()并运行测试。或者,换句话说,当问题AP-1234得到解决或发送到测试时。当前方法:目前,我正在尝试使用cust