Diverso tipo di dati di input tra Robot Quadro file e Python
-
20-12-2019 - |
Domanda
Sto scrivendo libreria di Excel per il mio test.
Originale libreria Python 'ReadExcel.py':
from xlrd import open_workbook, XL_CELL_TEXT class Read_Excel: def __init__(self,excel_file): self.excel_file = excel_file self.book = open_workbook(self.excel_file) self.sheet1_name = self.book.sheet_names() def Take_Sheet_Name(self,name): self.name = name return self.name def Cell_Value(self,row_index,col_index): self.row_index = row_index self.col_index = col_index sheet = self.book.sheet_by_name(self.name) cell_value = sheet.cell(self.row_index,self.col_index).value return cell_value
Eseguire un esempio per controllare se questo programma è possibile ottenere il valore della cella(0,1) via Eclipse o no?
y = Read_Excel('simple.xlsx')
y.Take_Sheet_Name('name1')
print y.Cell_Value(0,1)
Result: 11 --> this number is the actual value on cell(0,1)
Copiare questo file python Python Library/sito-pacchetto cartella e rinominare 'ReadExcel1.py' Quindi la scrittura di casi di test di base su ReadExcel1.py libreria
*** Settings ***
Documentation This is the resource file for Google test suite.
Library Selenium2Library
Library ReadExcel1 C:\\Automation_project\\Robot_framework\\Testing\\Check_activity\\simple.xlsx
*** Test Cases ***
Check Library
Take Sheet Name name1 --> pass
Cell Value 0 1 --> failed
Il log mostra messaggio come il seguente:
The list indices must be integers, not unicode
Quindi, credo a causa dell'ingresso di '0 1' a Valore Della Cella riga di comando è una stringa, in modo che la forza di tipo integer in ReadExcel1.py
self.row_index = int(row_index)
self.col_index = int(col_index)
Questo risolve il mio problema.
Ma mi chiedo perché non abbiamo bisogno per forza di cambiare il tipo di originale ReadExcel.py e python in grado di capire l'input '0 1' e un numero.Ma in ReadExcel1.py Robot capisce '0 1' è una stringa e non abbiamo per forza cambiare tipo per 'row_index, col_index' ?
Si prega di aiutarmi a fare questo problema in modo chiaro.
Grazie.
Soluzione
Per impostazione predefinita RF trasmettere tali argomenti come stringa stringa di 0 e 1.Se si desidera passare a quelli interi 0 e un numero da 1, quindi utilizzare ${0} e ${1}
Vedere http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#number-variables