Как запустить файл .vbs в Robotframework, вызвав функцию Python? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь создать собственное ключевое слово в Robotframework, в котором должен быть запущен файл .vbs, а затем добавить этот ключ в тестовый разрыв, чтобы файл .vbs запускался после завершения каждого тестового случая. Но когда я запускаю код, я получаю сообщение об ошибке «Ключевое слово« Common.CallVBS »ожидало 0 аргументов, получило 1». Я новичок в Python и кодирования и не могу понять это.

Ниже приведен код, который у меня есть в .py файле в каталоге «CustomLibraries» -

Import subprocess

def call_vbs(scriptpath):
    try:
        subprocess.call('cscript.exe ' + scriptpath)
        return "PASS"
    except:
        return "FAIL"

Ниже приведен файл "CommonCommands.robot", в котором в конце есть пользовательское ключевое слово "CallVBS" -

*** Settings ***
Documentation  It holds common functionalities related to all the Test Cases
Library  SeleniumLibrary
Library  ../CustomLibraries/Calling_VBS.py

*** Variables ***
${scriptpath}  ${EXECDIR}\\CustomLibraries\\saving.vbs

*** Keywords ***
CallVBS
    ${success}  call_vbs  ${scriptpath}
    Run Keyword If  "${success}"=="FAIL"  FAIL  Not able to launch VBS file
    log  ${scriptpath}

1 Ответ

2 голосов
/ 08 апреля 2019

Это связано не с ключевым словом call_vbs из библиотеки, а с ключевым словом CallVBS внутри файла робота.

При вызове ключевого слова CallVBS не следует добавлять какие-либо параметры.Или добавьте строку arugments к ключевому слову CallVBS следующим образом:

CallVBS
    [Arguments]    ${argument1}
    ${success}  call_vbs  ${scriptpath}
    Run Keyword If  "${success}"=="FAIL"  FAIL  Not able to launch VBS file
    log  ${scriptpath}

Также я бы предложил вам обернуть ключевые слова python в класс, например:

Import subprocess

class Custom(object):
    def call_vbs(self, scriptpath):
        try:
           subprocess.call('cscript.exe ' + scriptpath)
           return "PASS"
        except:
           return "FAIL"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...