正则表达式如何在 selenium 中工作?
Posted
技术标签:
【中文标题】正则表达式如何在 selenium 中工作?【英文标题】:How do regular expressions work in selenium? 【发布时间】:2010-09-29 01:09:24 【问题描述】:我想存储 id 的一部分,并丢弃其余部分。例如,我有一个 id 为“element-12345”的 html 元素。我想扔掉'元素-'并保留'12345'。我怎样才能做到这一点?
我可以捕获并回显该值,如下所示:
|商店属性 | //pathToMyElement@id |我的身份证 | |回声 | $!-myId-! | |当我运行测试时,我得到如下信息:
|商店属性 | //pathToMyElement@id |我的身份证 | |回声 | $myId |元素 12345 |我正在使用 Selenium IDE 进行录制,并使用 Selenium Bridge 夹具将测试复制到 Fitnesse 中。问题是我每次运行测试时都使用一个干净的数据库,其中包含我需要在整个测试过程中捕获和使用的随机 ID。
【问题讨论】:
+1 因为 selenium 是一个很好的工具! 【参考方案1】:解决方案是使用 javascript replace()
函数和 storeEval
:
| storeAttribute | //pathToMyElement@id | elementID |
| storeEval | '$elementID'.replace("element-", "") | myID |
现在,如果我回显myID
,我只会得到 ID:
| echo | $myID | 12345 |
【讨论】:
【参考方案2】:/元素-(\d+)/i
这是一个正则表达式,将捕获破折号后的数字。
【讨论】:
谢谢!现在我的代码会去哪里? |商店属性 | //pathToMyElement@id |我的身份证 | 真的很抱歉,我以前从未使用过 Selenium。我发布了正则表达式,希望以前使用过它的人可以过来帮助您使用它。我会做一些研究,看看我是否能找到答案:)【参考方案3】:这样的事情可能工作:
| storeAttribute | fn:replace(//pathToMyElement@id,"^element-","") | myId |
要执行正则表达式需要 XPath 2.0 - 不确定 Selenium 实现了哪个版本。
【讨论】:
以上是关于正则表达式如何在 selenium 中工作?的主要内容,如果未能解决你的问题,请参考以下文章
在在线正则表达式测试器中工作的 MariaDB 正则表达式在 SELECT WHERE REGEXP 中不起作用
Robotframework - 在python中工作的正则表达式不匹配
正则表达式在在线正则表达式测试器中无法在Angular Validators.pattern()中工作