我正在尝试将Angular的Scenario Test Runner与我的Django 1.4.4 webapp一起使用。
设置:我从角度phonecat教程项目(2013年3月,9a55c8)的新版本中复制了场景测试运行器文件。我将测试目录与其他静态资产(如js,css等)放在一起。我使用Angular进行一些绑定,但不使用路由。
问题:当我运行e2e runner并发出browser().navigateTo('../../../<myapp>');
时,我可以看到我的app加载的页面(在测试运行器屏幕的底部),但它就像测试人员看不到它。我的测试代码中的browser().location()
或.path()
值为空。如果我试图断言该页面上的元素,那些元素是未定义的。
答案 0 :(得分:2)
简短的回答是,设置实际上没有任何问题。是什么让我相信有两个基于对API的误解的观察。如果有人遇到类似问题,请注意:
element(selector)
之类的模式会返回未来的对象,这些对象在执行之前会显示为空。因为他们看起来很空虚,我相信他们没有匹配。如实例中所示,将它们与期望结合使用,例如:
expect(element('title').text()).toMatch('.*Home Page.*');
browser().location()
使用$location service,默认情况下配置为使用Hashbang网址(例如http://foo.com/#!/bar?param=val#hash
)。由于我使用的是传统URL(没有哈希),因此路径和URL都是空的。使用browser().window().href()
达到了预期的目标。