Selenium:如何使用xpath和regex分配字符串的可变部分?

时间:2015-09-30 01:04:05

标签: regex xpath selenium-ide

我正在尝试使用带有XPath和regex的“store”命令将一个位于<pre> - 节点的6位序列分配给变量,但我的方法出了点问题。

来自<pre>的示例文字:

"OPERACIA, KOD PODTVERZDENIA 021477"

命令:

store(//table[@id='sms_table']/tbody/tr/td/pre[matches(text(),'[0-9]{6}')], foo)

1 个答案:

答案 0 :(得分:4)

首先要注意的是,您应该使用storeText,而不是存储。商店只会记录您在目标字段中放置的内容,它不会在页面上查找定位器。此外,你完成正则表达式的方式([0-9] {6})不会给你你需要的东西。这将寻找0-9之后的数字,然后是6位数。

我最近不得不做同样的事情,我做的方式是将它分成2个命令,而不是试图一次性处理它。所以第一个命令,存储完整的东西,第二个命令,正则表达式拉出6位数。如下所示

<tr>
    <td>storeText</td>
    <td>//table[@id='sms_table']/tbody/tr/td/pre</td>
    <td>Text</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>storedVars['Text'].match(/\d{6}/)</td>
    <td>digits</td>
</tr>