私はJava + WebDriverのバックグラウンドであり、Protractor、WebdriverJS、Jasmineを使用しています。表示された画像では、すべての泡の上にマウスを置いて、ツールチップの値(都市、販売、接続)を取得し、それらをオブジェクトとして配列に割り当て、呼び出し関数に返します。誰もこの状況でオブジェクトの配列を作成する方法を教えてもらえますか?私はspecファイルからそれをアサートしようとしています。分度器/ WebDriverJS要素の値をオブジェクトの配列として返します。
この関数を呼び出したときreturn arr;が残りのコードの前に実行されます。非同期の振る舞いが原因であると考えられます。
this.getSalesVolumeDistribution = function() {
var arr = [];
var icons = element.all(by.css('#map-container svg>circle'));
icons.map(function(elm) {
browser.actions().mouseMove(elm).perform();
var toolTipCity = element(by
.css('#map-container g.highcharts-tooltip tspan:nth-of-type(2)'));
var toolTipUnitsSold = element(by
.css('#map-container g.highcharts-tooltip tspan:nth-of-type(3)'));
var toolTipUnitsConnceted = element(by
.css('#map-container g.highcharts-tooltip tspan:nth-of-type(4)'));
toolTipCity.getText().then(function(text) {
var cityVal = text.replace('City: ', '').replace(',', '');
console.log(text.replace('City: ', '').replace(',', ''));
var soldVal = toolTipUnitsSold.getText().then(function(text) {
return text.replace('Units Sold: ', '').replace(',', '');
});
var connVal = toolTipUnitsConnceted.getText().then(function(text) {
return text.replace('Units Connected: ', '');
});
arr.push({
city: cityVal,
sold: soldVal,
conn: connVal
});
});
});
return arr;
};
ここでは正確には機能しないものはありますか?エラーとは何か/出力の何が問題なのですか? – Danmoreng
私はこの関数を呼び出します。*** return arr; ***はコードの残りの部分より前に実行されます。非同期の振る舞いが原因であると考えられます。 –