2012-07-13 9 views
5

So che posso accedere a un singolo elemento da un oggetto dizionario con questo formato $ {dict ['KEY']}. Come questo:Come posso impostare il valore di un elemento del dizionario sul risultato di una parola chiave in Robot Framework?

| | Log | ${dict['KEY']} | 

E posso impostare un regolare vecchi scalare in questo modo:

| | ${scalar}= | RFKeyword | "Yowp" 

Ma se cerco di impostare un elemento di dizionario come questo

| | ${dict['KEY']}= | RFKeyword | "Yowp" 

ottengo "RFKeyword "," Yowp "nella variabile, piuttosto che il risultato di ciò che RFKeyword produce durante l'elaborazione di" Yowp "come faccio con questo

| | ${scalar}= | RFKeyword | "Yowp" 

assistenza si prega

+0

Ho attivato alleato per sbaglio StackOverflow? Non pensavo che fosse possibile. –

risposta

3

Hai solo bisogno di riorganizzare il modo in cui si chiama. Quindi per la vostra parola chiave in cui si desidera che i dati restituiti per andare in vostro dizionario è necessario effettuare le seguenti operazioni:

${scalar}= | RFKeyword | "Yowp" 
Set To Dictionary | ${dict} | KEY | ${scalar} 
+0

Ma non voglio affatto lo scalare. Voglio che il risultato della parola chiave vada direttamente in un dizionario. –

6

Come probabilmente avete capito, non è possibile assegnare a un dizionario da una parola chiave. Devi seguire in modo molto specifico la sintassi del dizionario. puoi solo restituire variabili ad elenchi o scalari.

La struttura del robot non è un linguaggio di programmazione completo e non dovrebbe esserlo. Utilizzando uno scalare intermedio, i tester non tecnici dovrebbero essere più in grado di capire cosa sta facendo.

Ho aggiunto questo dato che una ricerca su google per "dizionario framework robot" ha questa domanda in cima alla lista. Basta creare dizionari con:

Create dictionary | ${my_dict} | a | b 

Aggiungi dizionari con:

set to dictionary | ${my_dict} | c | d 

e recuperare da dizionari con:

${my_dict["a"]} 

Oppure, se avete bisogno di non fallire:

${my_dict.get('non-key','default value')} 
Problemi correlati