Различный тип входных данных между Robot Framework File и Python
-
20-12-2019 - |
Вопрос
Я пишу библиотеку Excel для моего собственного тестирования.
-
Оригинальная библиотека 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
Запустите пример, чтобы проверить, может ли эта программа получить значение ячейки (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 # Номер-переменные