我来自 Java+WebDriver 背景,是 Protractor、WebdriverJS 和 Jasmine 的新手。在显示的图像中,我试图将鼠标悬停在所有气泡上并获取工具提示值(城市、已售、已连接)并将它们作为对象分配给数组并将其返回给调用函数。谁能告诉我在这种情况下如何创建对象数组?我试图从我的规范文件中断言它。
当我调用这个函数时,返回 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;
};