2016-08-06 22 views
0

Ich versuche ein Schlüsselwort zu erstellen, das eine Liste als eine Suite-Variable exportiert, aber ich kann nicht herausfinden, wie man einen Namen an einen Variablennamen übergibt .Roboterrahmenwerk, generische Funktion, um einer Liste einen Namen zu geben

*** Test Cases *** 
Get Ref 
    ${list} = Create List  k l m n e 
    Rename List myName ${list} 
    log  @{myName} 


*** Keywords *** 
Rename List 
    [Arguments] ${name} ${values} 
    log  first: ${values[1]} 
    @{name}=  Create List ${values[1]} ${values[3]} 
    set suite variable @{name} 

Das Schlüsselwort nimmt einen String und eine Liste, erstellt eine kleinere Liste und exportiert sie mit dem Namen Zeichenfolge zur Verfügung gestellt. Als Anwendungsfall möchten Sie eine generische Funktion, die Werte aus einer Dropdown-Liste auf einer Webseite übernehmen und Ihnen nur die Elemente 1, 3 und 5 als neue Liste mit dem von Ihnen angegebenen Namen zurückgeben kann. Auf diese Weise könnten Sie es mehrmals mit verschiedenen Namen aufrufen und verschiedene Listen exportieren, die Sie später verwenden könnten. Gibt es eine Möglichkeit, dies zu funktionieren?

+0

statt 'Umbenennen Liste myName $ {list}', warum nicht nur verwenden '$ {myName} = list $ umbenennen {list} 'oder nur' $ {myName} = create list @ {list} '? Was bringt es, den Namen eines Schlüsselworts zu übergeben? –

+0

Ich möchte es mehrmals aufrufen können, damit Sie mehrere Listen innerhalb einer Suite mit jeweils einem eindeutigen Namen erstellen können. Die erste Option, die du vorschlägst, ist eine praktikable Lösung, die zweite erlaubt keine Manipulation innerhalb der Funktion (Aufteilen, Setzen von Variablen usw.) Ich habe auf etwas Eleganteres gehofft, aber vielleicht bleibe ich bei dem, was ich bin will, nicht was funktioniert. – Luxifer

+0

Korrektur (da es zu spät zum Bearbeiten ist), nein, es funktioniert nicht für mich, da ich Set Suite Variable auf meiner neuen Liste aufrufen möchte. – Luxifer

Antwort

2

Dies scheint zu tun, was Sie wollen, wenn ich die Frage richtig verstehe:

*** keywords *** 
rename list 
    [Arguments] ${name} ${values} 
    ${new}= create list @{values} 
    set suite variable ${${name}} ${new} 
+0

Das funktioniert super. Ich habe vorher versucht, die Methode $ {$ {name}} zu verwenden, aber nicht so. Die einzige Änderung, die ich vorgenommen habe, war 'set suite variable @ {$ {name}} @ {new}' Danke! – Luxifer