Text Selenium ide将字符串存储为数字

Text Selenium ide将字符串存储为数字,text,numbers,store,selenium-ide,Text,Numbers,Store,Selenium Ide,我需要存储两个文本值,并将它们用作减法运算的数字: <a href="..."><span id="user-account-balance">593 455,07</span> $</a> <a href="..."><span id="user-account-balance-points">12454</span> P</a> 我需要减去这两个值,但这对我不起作用: <tr>

我需要存储两个文本值,并将它们用作减法运算的数字:

<a href="..."><span id="user-account-balance">593 455,07</span> $</a>

<a href="..."><span id="user-account-balance-points">12454</span> P</a>

我需要减去这两个值,但这对我不起作用:

<tr>
    <td>storeText</td>
    <td>//a/span[@id='user-account-balance']</td>
    <td>a</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>storedVars['a'].match(/^\d+/);</td>
    <td>one</td>
</tr>
<tr>
    <td>storeText</td>
    <td>//span[@id='user-account-balance-points']</td>
    <td>c</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>storedVars['c'].match(/^\d+/);</td>
    <td>two</td>
</tr>
<tr>
    <td>store</td>
    <td>javascript{storedVars['one']+storedVars['two']}</td>
    <td>r</td>
</tr>
<tr>
    <td>echo</td>
    <td>${r}</td>
    <td></td>
</tr>

storeText
//a/span[@id='user-account-balance']
A.
仓库
storedVars['a'].match(/^\d+/);
一
storeText
//span[@id='user-account-balance-points']
C
仓库
storedVars['c'].match(/^\d+/);
二
商店
javascript{storedVars['one']+storedVars['two']}
R
回声
${r}
结果是[info]echo:59312454。所以有两个问题,第一个数字在空格后被切掉,它甚至不会减法

/^\d+/
将仅捕获字符串开头的连续数字序列。您需要修改第一个.match()正则表达式来处理文本数字,其中空格为千位分隔符,逗号为十进制分隔符。表示//g regex将返回一个字符串数组,因此您可能可以执行以下操作

storedVars['a'].match(/\d+(,\d\d)?/g).join('').replace(',', '.');
storeEval
parseFloat(storedVars['one']) + parseInt(storedVars['two'])
捕获货币字符串并以字符串到数字可转换的方式存储它。那么您的最后一个JavaScript表达式将类似于

storedVars['a'].match(/\d+(,\d\d)?/g).join('').replace(',', '.');
storeEval
parseFloat(storedVars['one']) + parseInt(storedVars['two'])

当总计存储为$xxx,xxx.xx时,这对我有效:

<tr>
    <td>storeText</td>
    <td>xpath=.//*[@id='table-header']/tbody/tr[1]/td[5]/b</td>
    <td>Total1</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>storedVars['Total'].replace(',', '').replace('$', '');</td>
    <td>Amount1</td>
</tr>

storeText
xpath=./*[@id='table-header']/tbody/tr[1]/td[5]/b
总计1
仓库
storedVars['Total'].替换(',','').替换('$,'');
数量1