Различный тип входных данных между Robot Framework File и Python

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

  •  20-12-2019
  •  | 
  •  

Вопрос

Я пишу библиотеку Excel для моего собственного тестирования.

  1. Оригинальная библиотека 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
    
  2. Запустите пример, чтобы проверить, может ли эта программа получить значение ячейки (0,1) через Eclipse или нет?

    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)
    
    .

    Скопируйте этот файл Python в папку Python Library / пакет сайта и переименуйте в «READEXCEL1.PY» Затем напишите тестовую базу чехол на Bidexcel1.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
    
    .

    Показать сообщение журнала, как показано ниже:

    The list indices must be integers, not unicode
    
    .

    Итак, я думаю, что благодаря входу «0 1» при <сильном> значении ячейки командная строка - это строка, поэтому я заставляю их к целому типу в readexcel1.py

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

    Это решает мою проблему.

    Но мне интересно, почему нам не нужно заставлять меняться в оригинале Readexcel.py, и Python может понять вход «0 1» номер. Но в Readexcel1.py робот понимает «0 1» - это строка, и мы должны заставить изменение типа для 'ROW_INDEX, COL_INDEX'?

    Пожалуйста, помогите мне сделать этот вопрос четко.

    спасибо.

Это было полезно?

Решение

По умолчанию RF по умолчанию пройдет эти аргументы как строка 0 и строку 1. Если вы хотите пройти те, как целое число 0 и целое число 1, то используйте $ {0} и $ {1}

см. см. http://robotframework.org/robotframework/latest/robotframeworkerkuder.HTML # Номер-переменные

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top