2011-08-10 11 views
6

Hay una página web que intento probar que tiene múltiples cuadros de texto. He llegado al punto en el que puedo recuperar todos los valores en cada cuadro de texto y almacenarlos en una matriz, pero estoy atascado en cómo volver a escribir esos mismos valores en los cuadros de texto.IDE de selenio: valores de escritura almacenados en una matriz en un cuadro de texto?

Esto es lo que tengo hasta ahora en Selenio:

What I have so far Vista ampliada:http://i.stack.imgur.com/rb93k.png

La variable 'contar' almacenado es simplemente el número de filas de la tabla, y no le está haciendo un problema. La parte que me he encerrado en un círculo rojo es donde el problema viene en

Cuando corro esta prueba, en lugar de escribir el valor almacenado en la matriz en ese índice, simplemente tipos:.

enter image description here

Esto continúa hasta el final.

La variable 'i' está insertada correctamente, pero por alguna razón, en lugar de agarrar ese valor, simplemente lo escribe en el cuadro de texto.

¿Alguien sabe cómo puedo obtener el valor correcto en la matriz?

A continuación se muestra la línea problemática:

type | javascript{this.browserbot.getUserWindow().getTestingHooks('TextBoxValue_' + storedVars['i'])} | ${textBoxArray[${i}]} | 

Respuesta

1

Creo que se necesita para reemplazar su referencia círculo a ${textBoxArray[${i}] con

javascript{storedVars['textBoxArray['+storedVars['j']+']']} 

Leer this blog post para obtener más información, especialmente la sección acerca de 'establecer y obtener variables '.

Citando el artículo, considere

store | 10 | x 

Obviamente, esto establece x = 10. Hay un par de formas de referenciarlo: $ {x} o storedVars ['x']. Ellos no son lo mismo.

En particular

No puede asignar nada a $ {x}.

1

Puede insertar un comando más antes de que su línea problemática:

getEval | storedVars['text'] = storedVars['textBoxArray'][storedVars['i']]; 

Y cambiar la línea problemático:

type | javascript{this.browserbot.getUserWindow().getTestingHooks('TextBoxValue_' + storedVars['i'])} | ${text} 

También será probablemente útil para declarar la matriz en el principio de la prueba:

storeEval | new Array() | textBoxArray 
2

Estoy usando la biblioteca de Selenium a través de Robot Tests Framework.No estoy usando ningún IDE, solo uso HTML para crear casos de prueba y definir nuevas palabras clave.

cuando cada vez que desee acceder a un elemento variable de lista, sólo tiene que utilizar el siguiente sintaxe

@ {list_variable_name} [0]

nota que $ {variable_name} es acceder a una variable de valor único o la referencia a la variable de la lista. Si queremos acceder a un elemento de la lista, necesitamos usar @ en lugar de $.

Si entiendo su situación correcta, @ {textBoxArray} [$ {i}] debería funcionar para usted.

Pruebe también $ {} textBoxArray [$ {i}] porque parece que su están simplemente misplaycing la última}.

Más detalles en http://robotframework.googlecode.com/svn/tags/robotframework-2.5.4/doc/userguide/RobotFrameworkUserGuide.html#list-variables

Cuestiones relacionadas