/ / Comment obtenir la valeur de l'élément en ruby ​​- ruby, testing, element, watir

Comment obtenir la valeur de l'élément dans ruby ​​- ruby, testing, element, watir

Quelqu'un peut-il me dire comment extraire la valeur présente dans le champ id = "2" afin que je puisse utiliser la même valeur dans un autre champ de texte.

Donc, ce que je veux exactement, c'est obtenir uniquement la valeur525XXXXXXX01166 de la balise ci-dessous que je dois transmettre à un autre champ de texte pour continuer le test. mais dans la source rien d'autre n'est présent. J'ai également joint la source.

field id = "2" value = "525xxxxxx01166"

Ci-dessous la source complète

réponse a 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"
Réponse - succès <- 0110 000224 33433489

Réponses:

1 pour la réponse № 1

Ce code:

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

Vous donne ce résultat:

525XXXXXXXXX66

Malheureusement, cette expression régulière ne fonctionnera pas bien sivous voulez extraire toutes les valeurs d'une chaîne multiligne. Il devrait être modifié à cette fin. Cependant, pour le scénario que vous avez décrit, c’est suffisant.


0 pour la réponse № 2

En supposant que vous ayez le texte dans une variable appelée "t":

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

Reviendra:

"525XXXXXXXXX66"