Différents types de données d'entrée entre le fichier-cadre de robot et le python

StackOverflow https://stackoverflow.com//questions/24007245

  •  20-12-2019
  •  | 
  •  

Question

J'écris Excel Bibliothèque pour mes propres tests.

  1. bibliothèque python originale '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
    
  2. Exécuter un exemple pour vérifier si ce programme peut obtenir la valeur de la cellule (0,1) via Eclipse ou non?

    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)
    

    Copiez ce fichier Python sur le dossier Python Bibliothèque / Site-Package et renommer à 'Readexcel1.py' Ensuite, écrivez la base de cas de test sur la bibliothèque Readexcel1.py

    *** 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
    

    Le journal du journal est ci-dessous:

    The list indices must be integers, not unicode
    

    Donc, je pense que c'est en raison de l'entrée '0 1' à la ligne de commande de la cellule la ligne de commande est une chaîne, donc je les force à entier de type ineexcel1.py

    self.row_index = int(row_index)
    self.col_index = int(col_index) 
    

    Cela résout mon problème.

    Mais je me demande pourquoi nous n'avons pas besoin de forcer le changement de type dans l'original Readexcel.py, et Python peut comprendre l'entrée '0 1' est le numéro. Mais dans Readexcel1.py, Robot comprend '0 1' est une chaîne et nous devons forcer le changement de type pour 'Row_index, Col_index'?

    Aidez-moi s'il vous plaît faire ce problème clairement.

    merci.

Était-ce utile?

La solution

Par défaut, RF transmettra ces arguments en tant que chaîne 0 et String 1. Si vous souhaitez transmettre ceux-ci comme entier 0 et entier 1, puis utilisez $ {0} et $ {1}

voir http://robotframework.org/robotframework/latest/robotframeworkUide.html # nombre-variables

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top