我正在用一个小的AngularJS应用测试Protractor。这是测试:describe('TestingProtractor',function(){vardraftList;it('shouldcountthenumberofdrafts',function(){browser.get('#/');draftList=element.all(by.repeater('newsletterindrafts'));expect(draftList.count()).toEqual(2);});});Controller:angular.module('myApp.controller
我们添加了一个toHaveClass自定义jasmine匹配器,为了让它工作,我们必须将它添加到beforeEach()(在thistopic的帮助下)。并且,为了遵循DRY原则并避免在需要toHaveClass的规范中的每个beforeEach()中重复匹配器定义,我们添加了一个beforeEach()block直接进入onPrepare():onPrepare:function(){varjasmineReporters=require("jasmine-reporters");require("jasmine-expect");//...//custommatchersbefor
目前有部分端到端测试,输入用户名/密码并点击“登录”。它成功地做到了这一点,但在“感谢您已登录”页面结束,而不是像我通过浏览器登录时那样被重定向到“帐户门户”或“仪表板”。\这个项目的新手,但我们正在使用OAuth。主要问题:这听起来像是需要httpmocking吗?更多详情:规范.jsdescribe('loginpage',function(){browser.driver.get('http://url.path/login');it('shouldrenderloginpage',function(){//CheckingthecurrenturlvarcurrentUrl=b
问题:在我们的一个测试中,我们有一个"longclick"/"clickandhold"functionality我们通过使用解决:browser.actions().mouseDown(element).perform();browser.sleep(5000);browser.actions().mouseUp(element).perform();我们希望通过让sleep()成为Action链的一部分来理想地在一行中解决这个问题:browser.actions().mouseDown(element).sleep(5000).mouseUp(element).perform();
我想启动4个不同的chrome窗口以在4个分辨率上运行相同的测试。–我知道Protractor有一个叫做multiCapabilities的特性,我知道你可以像这样设置窗口大小:browser.manage().window().setSize(320,480);但我并没有真正找到将这两者结合起来的方法。或者是否有更简单的方法来创建这种行为 最佳答案 对我来说,最好的方法是在配置中添加multiCapabilities:multiCapabilities:[{'browserName':'chrome','chromeOptions
我需要测试一个Protractor测试用例,其中用户注册、收到电子邮件、转到电子邮件中提供的链接并在激活注册表中填写他/她的详细信息。问题是如何从电子邮件中获取兑换token。我的电子邮件有一个指向激活页面的链接,该页面具有如下所示的授权token:http://127.0.0.1:3000/#/signup/redeem/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlOTRhYzY3MC1kYTNlLTQyYTUtODVkZS02NDU4ZjVmZGMwYjAiLCJzdWIiOiJ0ZXN0QGNvZWYuY28iLCJpYXQi
我是Protractor框架的新手,一段时间以来我一直在尝试弄清楚如何获取outerHTML/InnerHTML/getText()(子元素),以便我可以测试元素是否为。被渲染到View上。注意,我们有一个ng-grid我试图在它的第一列中查找它是否包含img元素还检查它是否包含属性,即src=res/someImg.png.这是我得到的html......测试it('shouldrenderaniconinagentlist',function(){varrow=element.all(by.repeater('rowinrenderedRows')).get(3);expect(r
查找页面上所有具有滚动条的元素的最可靠和最有效的方法是什么?目前,我正在考虑使用element.all()与filter()比较height和scrollHeight属性值:element.all(by.xpath("//*")).filter(function(elm){returnprotractor.promise.all([elm.getAttribute("height"),elm.getAttribute("scrollHeight")]).then(function(heights){returnheights[1]>heights[0];});});但我不确定这种方法的
问题:在Protractor中定义嵌套页面对象的规范方法是什么?用例:我们有一个复杂的页面,由多个部分组成:过滤面板、网格、摘要部分、一侧的控制面板。将所有元素和方法定义放入单个文件和单个页面对象中是行不通的,也无法扩展——它变得一团糟,难以维护。 最佳答案 当涉及到页面对象以及如何维护它们时,这更像是一个一般性的话题。前段时间我偶然发现了一种我喜欢的页面对象设计模式技术,它对我来说很有意义。与其在父页面对象中实例化子页面对象,不如遵循javascript的原型(prototype)继承概念。这有很多好处,但首先让我展示一下我们如何
这里是新用户。在构建我的冒烟和回归测试数小时后,我在网上阅读了许多案例后发现,众所周知,phantomjs很难与Protractor一起运行。到目前为止,Jenkins一直在运行phantomjs来完成所有的任务。他们需要这些测试作为没有安装窗口系统的ci的一部分运行。因此,如果有完全headless浏览器或headlesschrome(这将是最有益的)的建议并逐步设置它,我将不胜感激。我已经有一个conf.js和一个e2e.conf.js文件。我的代码在chrome上运行得很好。我相信我使用的是iMac和seleniumwebdriver。编辑:问题=Protractor不适用于ph