如何在ruby中获取元素的值

时间:2012-08-31 11:39:05

标签: ruby testing element watir

有人可以告诉我如何提取字段id ='2'中的值,以便我可以在另一个文本字段中使用相同的值。

那么我想要的只是从下面的标签中获取值525XXXXXXX01166,我需要将其传递给其他文本字段以继续测试。但在源头上没有别的东西存在。我也附上了消息来源。

field id =“2”value =“525xxxxxx01166”

以下是完整的来源

得到了回应 field id =“0”value =“0110”
field id =“2”value =“525XXXXXXXXX66”
field id =“3”value =“000000”
field id =“4 “value =”000000010000“
field id =”6“value =”000000010000“
field id =”7“value =”0831112100“
field id =”11“value =”000213 “
field id =”32“value =”550060“
field id =”33“value =”012295“
field id =”37“value =”123453389112“
field id =“38”value =“103063”
field id =“39”value =“00”
field id =“41”value =“3333489”
field id =“48 “value =”F2001S92032844233333212“
field id =”49“value =”784“
field id =”51“value =”784“
field id =”63“value =”SUasdsdGPLA “
回应 - 成功 < - 0110 000224 33433489

2 个答案:

答案 0 :(得分:1)

此代码:

text = 'response got field id="0" value="525XXXXXXXXX66"'
matcher = text.match(/value="(.+)"/)
puts matcher.captures.first

给你这个结果:

525XXXXXXXXX66

遗憾的是,如果要从多行字符串中提取所有值,则此正则表达式将无法正常工作。为此目的,必须进一步修改。但是,对于您描述的场景,这已经足够了。

答案 1 :(得分:0)

假设你有一个名为't'的变量中的文本:

row = t.split("\n").detect {|v| v =~ /id\=\"2\"/}
/value\=\"(?<value>[\dX]+)/.match(row)[:value]

将返回:

"525XXXXXXXXX66"