2016-11-28 4 views
1

Ich schrieb einen Testfall, wo es die Login-Daten von Excel-Blatt lesen und für jedes Paar von Details wird es einloggen und abmelden.So löschen oder löschen Sie die Werte aus der Liste in Robot Framework

Ich lese Daten aus Excel, jede Zeile Details, die ich übergebe, um Liste und das Senden als ein anderes Schlüsselwort/Funktion für die Anmeldung zu senden.

Nach dem Abmelden möchte ich nur die Werte in der Liste entfernen, es zeigte sich als erfolgreich, aber im nächsten Lauf zeigte es auch alte Werte.

Ich suchte, ich habe kein Schlüsselwort, um alle Listenwerte zu löschen.

Kann mir bitte dabei helfen. Hier ist der Code:

*** Settings *** 
     Documentation  CLM Registration Test Case 
     Test Teardown  Close All Browsers 
     Library   Selenium2Library 
     Library   Collections 
     Library   ExcelLibrary 
     Library   String 

    *** Variables *** 
    ${delay}   5s 
    ${excelName}  LoginTestData.xls 
    @{rowValues} 
    ${rowCount}  ${EMPTY} 
    ${cellCount}  ${EMPTY} 

    *** Test Cases *** 
    Get Data from Excel 
     Open Excel Sheet ${excelName} 
     @{sheetNames} Get Sheet Names 
     ${sheetName} Set Variable @{sheetNames}[0] 
     ${rowCount} Get Row Count ${sheetName} 
     ${cellCount} Get Column Count ${sheetName} 
     : FOR ${rindex} IN RANGE 1 ${rowCount} 
     \ @{rowValues} Get Values ${sheetName} ${rindex} ${cellCount} 
     \ Log to console row values are for index ${rindex} : @{rowValues} 
     \ Login to the CLM @{rowValues} 
     \ Log cell count is : ${cellCount} 
     \ Change Language to English 
     \ Sleep ${delay} 
     \ Logout from CLM 
     \ Remove Values ${rowValues} ${cellCount} 

    *** Keywords *** 
    Open Excel Sheet 
     [Arguments] ${excelName} 
     Open Excel ${excelName} useTempDir=False 

    Get Values 
     [Arguments] ${sName} ${row} ${cCount} 
     Log to console user is in Get Values function 
     : FOR ${cindex} IN RANGE 0 ${cCount} 
     \ Log to console get the data from ${sName}[${cindex}][${row}] 
     \ ${cellValue} Read Cell Data By Coordinates ${sName} ${cindex} ${row} 
     \ Insert Into List ${rowValues} ${cindex} ${cellValue} 
     [Return] @{rowValues} 

    Login to the CLM 
     [Arguments] @{rowValues} 
     Open Browser http://172.20.24.74/clm-ui/#/login/ chrome 
     Maximize Browser Window 
     Sleep ${delay} 
     Input Text id=username @{rowValues}[0] 
     Input Password id=password @{rowValues}[1] 
     Click Button css=.btn.btn-primary 

    Remove Values 
     [Arguments] ${rowValues} ${cellCount} 
     Log to console rowvalues are : ${rowValues} and cell Count: ${cellCount} 
     : FOR ${index} IN RANGE 0 ${cellCount} 
     \ ${value}= Remove from List ${rowValues} -1 
     \ Log to console value removed from list is : ${value} 

    Change Language to English 
     Sleep ${delay} 
     Wait Until Element Is Visible xpath=//*[@id='top-navbar']/ul[2]/li/a/span[2] 30s 
     Click Element xpath=//*[@id='top-navbar']/ul[2]/li/a/span[2] 
     Click Element xpath=//*[@id='top-navbar']//a[contains(text(),'English')] 

    Logout from CLM 
     Sleep ${delay} 
     Click Element xpath=//*[@id='top-navbar']/ul[2]/li/a/span[2] 
     Click Link link=Logout 

In der Ausgabe zeigte als Wert entfernt, aber beim nächsten Lauf, es zeigte alten Werte auch

wie unten setzen:

=========================================================================================================== 
ReadExcel :: CLM Registration Test Case                  
=========================================================================================================== 
Get Data from Excel                    user is in Get Values function 
get the data from LoginDetails[0][1] 
get the data from LoginDetails[1][1] 
row values are for index 1 : [u'akurasa', u'Srija210$'] 
rowvalues are : [u'akurasa', u'Srija210$'] and cell Count: 2 
value removed from list is : Srija210$ 
value removed from list is : akurasa 
user is in Get Values function 
get the data from LoginDetails[0][2] 
get the data from LoginDetails[1][2] 
row values are for index 2 : [u'clmui', u'tecnotree', u'akurasa', u'Srija210$'] 
rowvalues are : [u'clmui', u'tecnotree', u'akurasa', u'Srija210$'] and cell Count: 2 
value removed from list is : Srija210$ 
value removed from list is : akurasa 
| PASS | 
----------------------------------------------------------------------------------------------------------- 

Antwort

2

Versuchen Sie das Schlüsselwort "Create List" als letzter Schritt der FOR-Schleife anstelle des benutzerdefinierten Schlüsselwortes "Remove Values". Auch bewegen, um die Variable $ {ZellenZaehler} innerhalb der Schleife, wenn Anzahl der Spalten für jede Zeile

Get Data from Excel 
    Open Excel Sheet ${excelName} 
    @{sheetNames} Get Sheet Names 
    ${sheetName} Set Variable @{sheetNames}[0] 
    ${rowCount} Get Row Count ${sheetName} 

    : FOR ${rindex} IN RANGE 1 ${rowCount} 
    \ ${cellCount} Get Column Count ${sheetName} 
    \ @{rowValues} Get Values ${sheetName} ${rindex} ${cellCount} 
    \ Log to console row values are for index ${rindex} : @{rowValues} 
    \ Login to the CLM @{rowValues} 
    \ Log cell count is : ${cellCount} 
    \ Change Language to English 
    \ Sleep ${delay} 
    \ Logout from CLM 
    \ @{rowValues} Create List 

„@ {rowValues} Liste erstellen“ variiert: Mit diesem Befehl werden die Werte in der Liste löschen

+0

Hallo Rakesh Entschuldigung, ich habe dich nicht verstanden. Welche Funktionalität muss ich in das benutzerdefinierte Schlüsselwort "Liste erstellen" implementieren? –

+0

"Create List" ist ein Bibliotheksschlüsselwort, das in der BuiltIn-Bibliothek verfügbar ist. Sie müssen kein Skript dafür schreiben. Kopieren Sie einfach das obige Skript und fügen Sie es in den Abschnitt Testfall ein. Probieren Sie es aus und aktualisieren Sie es. – Rakesh

+0

Danke Rakesh, es hat funktioniert. –

Verwandte Themen