2016-09-06 64 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的內容 - 值將返回到promise中,並且其範圍僅位於隨後的回調函數內。如果您在webdriverJs控制流之外聲明變量,則它們運行異步並且不要等待webdriver命令完成。請參閱 - https://github.com/angular/protractor/blob/master/docs/control-flow.md – AdityaReddy