2016-09-06 10 views
0

私の問題の答えを見つけることができません。私は下から0.01の値を取得し、それと一緒に操作する必要があります。要素から浮動小数点値を取得する方法は?

は、我々はHTMLを持っていると言うなど、いくつかの値を追加します。

<html> 
    <body> 
     <div>Exchange rate</div> 
     <span>0.01</span> 
    </body> 
</html> 

だから、XPathは、私は要素変数を作成するために管理分度器で

„//div[text() = ‘Exchange rate’]/../span” 

です:

var element = element(by.xpath(„//div[text() = ‘Exchange rate’]/../span”)); 

今私はそれからフロート値を取得し、コードの後半で使用する必要があります。

どうすればいいですか?

答えて

3

あなたのHTMLは角度がありませんし、 '要素'を使用するとエラーが発生します。私は、コードスニペットは、単なる一例であるかどうかわからないですし、あなたが実際の角度ページ上で動作している場合ので、私は非角のケースでどちらの場合も

にお答えします:アンギュラページの場合

browser.driver.get("<<>>/test.html"); browser.driver.findElement(by.xpath('//span')).getText().then(function(value){ console.log("The Float value is " + parseFloat(value)) });

browser.get("<<>>/test.html"); 
    element(by.xpath('//span')).getText().then(function(value){ 
     console.log("The Float value is " + parseFloat(value)) 
    }); 
+0

ありがとうございました。それは私の問題を解決しました。 –

+0

作成した外部コードは、parseFloat(value)を使用することはできません。つまり、コードの直前に変数を宣言してparseFloat(value)を代入しても、それを外部で使用することはできません。なぜ私は不思議です。私は分度器とJSで新しいです。 –

+0

getText - valueの内容は約束で返され、そのスコープはそれ以降のコールバック関数内にのみあります。また、webdriverJsコントロールフローの外側にある変数を宣言している場合は、非同期で実行され、webdriverコマンドが完了するのを待たないでください。これを参照してください - https://github.com/angular/protractor/blob/master/docs/control-flow.md – AdityaReddy

関連する問題