2016-09-06 49 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