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