我想在运行
Protractor测试之前向数据库服务器发出POST请求(使用JSON有效载荷),以便注入测试数据.如果有可能,我该怎么办?
解决方法
我在Andres D的帮助下找到了一种方法.它的要点是通过browser.executeAsyncScript在浏览器中运行脚本,并在其中注入
$http service.然后,$http服务被要求进行POST请求.以下是CoffeeScript的示例:
browser.get('http://your-angular-app.com') browser.executeAsyncScript((callback) -> $http = angular.injector(["ng"]).get("$http") $http( url: "http://yourservice.com" method: "post" data: yourData dataType: "json" ) .success(-> callback([true]) ).error((data,status) -> callback([false,data,status]) ) ) .then((data) -> [success,response] = data if success console.log("Browser async finished without errors") else console.log("Browser async finished with errors",response) )