E2E テストを作成しようとしている複数値セレクターがあります。を使用しても問題なく動作しますが、複数の値を選択select(name).option
しようとするselect(name).options
と機能しません。
デモンストレーションのためにいくつかのコードをまとめようとしましたが、動作させることができません。
HTML:
<html lang="en">
<head>
<title>End2end Test Runner</title>
<script src="http://code.angularjs.org/1.0.1/angular-scenario-1.0.1.js"
ng-autotest>
</script>
</head>
<body ng-app="MyApp">
<div ng-controller="MyAppCtrl">
{{model.exampleValue}}
<select id="a_selector"
ng-model="model.selectedItems"
ng-options="item.name for item in model.items"
multiple="multiple">
</select>
</div>
</body>
Javascript:
var app = angular.module('MyApp', ['ngResource'])
app.controller('MyAppCtrl', function($scope) {
$scope.model = {};
$scope.model.exampleValue="an example value";
$scope.model.items = [{"name": "Product1"}, {"name": "Product2"}];
});
app.config(['$routeProvider', function ($routeProvider, $scope) {
$routeProvider.when('/', {controller:MyAppCtrl});
}]);
describe('my app', function() {
it('should display the home page', function() {
browser().navigateTo('/');
// this should work (when I can fix this code!)
select("model.selectedItems").option("Product1");
expect(element("#a_selector option:selected").count()).toEqual(1)
// this doesn't, nothing is selected
select("model.selectedItems").options("Product1", "Product2");
expect(element("#a_selector option:selected").count()).toEqual(2)
});
});
この線
select("model.selectedItems").option("Product1");
次のエラー メッセージで失敗します。
Selector select[ng\:model="model.selectedItems"] did not match any elements.
誰かが(1)上記のコードがまったく機能しない理由を特定するのを手伝ってくれ、(2)なぜ機能しselect(name).options
ないのかを理解するのを手伝ってくれれば幸いです。(同じことを達成するために使用できる他の手法があることは知っていますがselect
、製品コードの実際にはng-change
、回避策を試しても起動しない属性もあります)。
ありがとう、
グレアム・ルートヴィヒ。