2013-10-10 5 views
1

Je suis nouveau dans le monde de Watir. Je pensais que mon problème était facile mais je ne suis pas capable de le faire.Comment créer un localisateur d'éléments de manière dynamique?

Voici mon code:

names = Hash.new 
names[:text] = 'Image' 
puts names 
browser.a("#{names}").click 

Je reçois cette erreur:

'extract_selector': expected Hash or (:how, 'what'), got ["{:text=>\"Image\"}"] (ArgumentError) 

print indique la valeur correcte comme "{:text=>"Image"}".

Répondre

2

Si vous lisez le message d'erreur avec soin - * 'extract_selector': Hash prévu ou (: comment, 'quoi') *

Essayez ceci:

browser.a(:text => 'Image').click 
      :how  :what 

ensuite faire (selon le commentaire de l'OP)

browser.a(names).click 
      Hash 

Voici le code complet:

require 'watir-webdriver' 

b = Watir::Browser.new 
b.goto "http://en.wikipedia.org/wiki/Ruby_(programming_language)" 
# <a href="/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilation</a> 
hsh = {:text => 'just-in-time compilation'} 
b.a(hsh).text # => "just-in-time compilation" 
+0

Mon problème est que je veux créer: text => 'Image' dynamiquement. Je vais obtenir le nom de la propriété (texte) et la valeur (Image) dans l'exécution et je veux trouver l'élément en utilisant cela. – Pratik

+0

@Pratik donc .. clé et valeur les deux sont dynamiques? –

+0

Oui. les deux sont dynamiques – Pratik

0

Il dit qu'il attendait une table de hachage, donc ne donnent pas une chaîne:

browser.a(names).click 

?

Questions connexes