【问题标题】:Extracting Number from a string using Selenium IDE使用 Selenium IDE 从字符串中提取数字
【发布时间】:2012-08-07 15:04:42
【问题描述】:

我已经查看了这个问题的几十个答案,并尝试了所有答案,但无法让其中任何一个起作用。我确信这是非常简单的事情,但这就是我想要做的;

我需要从一个字符串中提取一个数值,然后比较它是否大于或等于一个数字。我正在使用 Selenium IDE。

字符串很简单XXX Total matches,其中XXX 是数字。我已经使用storeText 存储了这个字符串,将它存储在一个适当命名的变量中,String。

然后我运行echo 命令来显示“字符串”以确保该部分正确,并按预期显示“XXX 总匹配项”字符串。

我尝试了几种提取字符串数字部分的方法,包括regexp、javascript等。

“似乎”起作用的是storeeval | String=String.slice(0, 2); | Number,但是当我尝试回显数字时,它什么也没显示。

我试过了

javascript{(${String}.match(/\\d+/))}

javascript{parseInt(${String}, 10);}

javascript{parseInt(${String})}

但是当我尝试这些时,我在 selenium IDE 中遇到错误

[error] Unexpected Exception: fileName -> chrome://selenium-ide/content/selenium-core/scripts/selenium-api.js, lineNumber -> 2531

我确定这可能是一个基本的新手错误,但我无法弄清楚我做错了什么。

【问题讨论】:

    标签: javascript selenium selenium-ide


    【解决方案1】:

    storeXXX 结果的变量设置为storedVars。
    尝试跟随。

    storeText id=numAndString text 
    storeEval storedVars['text'].match(/^\d+/); num 
    echo ${num}
    

    【讨论】:

    • 从storedVars['text'].match(/^\d+/)中移除^符号;为我工作。
    【解决方案2】:

    您可以通过以下代码拆分该数字字符串 -

    store | XXX Total matches  | string
    store | 0 | delimiter
    store | javascript{storedVars['string'].split('Total')[storedVars['delimiter']]} | number
    echo  | ${number}
    
    Result - XXX
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      相关资源
      最近更新 更多