【问题标题】:how to get float value from element?如何从元素中获取浮点值?
【发布时间】:2017-01-13 13:17:12
【问题描述】:

我找不到问题的答案。我需要从下面获取值 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”));

现在我需要从中获取浮点值并稍后在代码中使用它。

我该怎么做?

【问题讨论】:

    标签: html xpath protractor gettext


    【解决方案1】:

    首先,您的 html 是非角度的,使用“元素”会引发错误。我不确定代码 sn-p 是否只是一个示例,是否您实际上是在 angular 页面上操作,所以我会回答这两种情况

    对于非角度情况:

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

    对于 Angular 页面:

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

    【讨论】:

    • 值得一提的是,您创建的外部代码我们不能使用 parseFloat(value)。我的意思是即使我们在您的代码之前声明一个变量并将 parseFloat(value) 分配给它,我们也不能在外部使用它。我想知道为什么。我是量角器和 JS 的新手。
    • getText 的内容-value 在promise 中返回,其范围仅在following then 的回调函数内。如果您在 webdriverJs 控制流之外声明变量,它们会异步运行并且不等待 webdriver 命令完成。请参考这个 - github.com/angular/protractor/blob/master/docs/control-flow.md
    • 阿迪亚!!!你能帮我解决这个问题吗?stackoverflow.com/questions/39284506/…stackoverflow.com/questions/39348479/…
    • 当然......会检查它,但我不是打字稿专家:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    相关资源
    最近更新 更多