2015-11-23 14 views
0

Я пытаюсь написать тест Robot Framework для загрузки файлов. Я использую ниже ключевое слово для выполнения функции.Получение пути не является канонической ошибкой при выполнении функционального теста с использованием Robot Framework

Choose File ${UPLOAD_FILE_HIDDEN_INPUT} ${UPLOAD_FILE_NAME} 

где

${UPLOAD_FILE_HIDDEN_INPUT} xpath=//input[@type="file"] 

и $ {} upload_file_name это место путь, где я пытаюсь поместить файл, который должен быть загружен.

Мой TestCase находится в ниже директориях

C:\Dev\Application\tests\functional\Robot\TestSuite\TestCase 

Я помещаю файл, который должен быть загружен в ниже каталога

C:\Dev\Application\tests\functional\Robot\Images\File1.jpg 

Я объявляя переменный $ {upload_file_name} в переменном сечении теста. Для того, чтобы добраться до расположения файла, мне нужно вернуться назад одна папки

C:\Dev\Application\tests\functional\Robot\ 

, а затем перейти к папке изображений C: \ Dev \ Application \ тесты \ функционального \ Robot \ Images

In- для того чтобы выполнить это, я использую ниже значение переменной

${UPLOAD_FILE_NAME} ${CURDIR}\\..\\Images\\File1.jpg 

Но я получаю ошибку ниже

path is not canonical: C:\\Dev\\ClaimLogUI\\tests\\functional\\Robot\\TestSuite\\..\\Chrysanthemum.jpg\n (Session info: chrome=46.0.2490.86)\n (Driver info: chromedriver=2.15.322448 (52179c1b310fec1797c81ea9a20326839860b7d3),platform=Windows NT 6.1 SP1 x86_64)' 

Я использовал аналогичную нотацию Папки как ценность для других файлов в другом сценарии, и она отлично работала. Я не уверен, где я ошибаюсь, чтобы найти File1.jpg. Я использую Chrome Browser для выполнения этого теста. Может кто-нибудь мне помочь?

ответ

0

$ {CURDIR} - путь к каталогу, в котором находится файл тестовых данных.

Вы должны использовать $ {EXECDIR}, который является абсолютным путем к каталогу, в котором запускается выполнение теста.

-1

Вы можете использовать ключевое слово Normalize Путь из библиотеки Операционнаясистема, чтобы сделать свой путь в качестве канонического

${NORMAL_PATH_UPLOAD_FILE_NAME} Normalize Path ${UPLOAD_FILE_NAME}

Затем вы можете использовать этот код без ошибок

Choose File ${UPLOAD_FILE_HIDDEN_INPUT} ${NORMAL_PATH_UPLOAD_FILE_NAME}

(You может читать это для дальнейшей информации http://robotframework.org/robotframework/latest/libraries/OperatingSystem.html)