2016-10-17 2 views
1

In meiner Anwendung habe ich einen Wert während der Laufzeit ausgefüllt.Multiplizieren Sie Werte aus Text von Elementen auf Laufzeit-Winkelmesser

<span id="uxUnitPrice">182.18</span> 

Ich möchte diesen Einheitspreis extrahieren und mit einem festen Wert für z. 15. Sobald ich das Ergebnis auf dem Bildschirm bekomme, möchte ich das holen und vergleichen, um zu sehen, ob die von mir vorgenommene Berechnung dem entspricht, was auf dem Bildschirm angezeigt wird. Für z.B. Ergebnis sollte 182,18 sein * 15 = 2732,25 Ich versuchte unter Code, aber es gibt mir NaN. Kann jemand bitte vorschlagen, wie man eine mathematische Operation richtig mit Selenium oder Winkelmesser durchführt?

MeltValueCoin = element(by.css('[id="uxUnitPrice"]')); 
expect(ValidateMeltValueCalculator()).tobe(2732.25); 
function ValidateMeltValueCalculator(){ 
     var units = 10; 
     var MeltValue = parseInt(MeltValueCoin.getText()); 
     return units*MeltValue;} 

Antwort

2

Die Methode getText gibt ein Versprechen. Daher müssen Sie es zuerst mit then auflösen, um den Wert zu erhalten:

MeltValueCoin = element(by.css('[id="uxUnitPrice"]')); 

expect(ValidateMeltValueCalculator()).tobe(2732.25); 

function ValidateMeltValueCalculator(){ 
    var units = 10; 
    return MeltValueCoin.getText().then(text => text * units); 
} 
+0

Danke. Können Sie mir bitte vorschlagen, wie ich es auf 2 Dezimalziffern beschränken sollte? Wenn ich es um 10 multipliziere, gibt mir das zurück 1822.1000000000001 – NewWorld

+0

Werfen Sie einen Blick hier: http://stackoverflow.com/questions/11832914/round-to-at- most-2-dezimal-places-in-javascript –

+0

Ich habe versucht, bereits Fixed. Es zeigt mir, dass "Failed: result.toFixed keine Funktion ist". Ich habe es auch unten versucht, aber das gibt mir 'Erwartete NaN 2733.15'. 'var result = MeltValueCoin.getText(). Dann (text => text * units); return Math.round (Ergebnis * 100)/100 ' – NewWorld

Verwandte Themen