Сценарий выполняется независимо от того, какие параметры предоставляются - PullRequest
0 голосов
/ 04 апреля 2019

Мой скрипт должен иметь 2 необязательных аргумента (имя пользователя, пароль) и один обязательный аргумент (URL).Каждый раз, когда я запускаю код, он делает то, что мне нужно, но он делает это, даже если указан обязательный аргумент или выбрана опция --help.

Я хочу, чтобы он выполнялся только в том случае, если выполнены обязательные параметры, и если выбран параметр --help, я хочу, чтобы он отображал только использование.

В настоящий момент все сценарии выполняютсяпринимает указанные аргументы (или использует значения по умолчанию) для запуска браузера (Chrome), перехода к указанному пользователем URL-адресу и входа в систему с использованием указанного, если я предоставляю домен с помощью параметра -u, он работает, как и ожидалось, однако, если яне все еще продолжается.Если мое понимание правильное, опция required=True в argparse должна требовать, чтобы пользователь предоставил эту опцию (по крайней мере) или выдал ошибку?

У меня также возникает та же проблема, когда я пытаюсь запуститьиспользование, если я выбрал --help использование отображается (я вижу его в консоли рядом с окном браузера), но сценарий тоже запускается, не удается подключиться к какой-либо веб-странице, потому что ни один не был предоставлен.

#  Setting up script arguments/options
parser = argparse.ArgumentParser(description="Temp message - Will decide later.")
#  Optional Parameters
parser.add_argument('-un', '--username', dest="username", default='something', help='Username used to login.')
parser.add_argument('-pa', '--password', dest="password", default='90909', help='Password used to login.')

#  Required Parameters
parser_required = parser.add_argument_group('required parameters')
parser_required.add_argument('-u', '--url', dest="url", help='Use full CMS name, eg. "DummyDomain"', required=True)
result = parser.parse_args()


def open_and_setup():

    # Setting vars. for login and page access.
    url = 'http://' + result.url
    username = result.username
    password = result.password

    # Setting up page access, maximising window.
    browser.maximize_window()
    time.sleep(1)

    # Logging in using script (loginHandler).
    login = loginHandler.loginHandler(browser, url, username, password)
    login.signIn()
    time.sleep(5)


if __name__ == '__main__':
    open_and_setup()
    browser.close()

Я опустил импорт и глобальную переменную.в попытке сэкономить место здесь, но, если это необходимо, я могу обновить вопрос.

TL; DR - Пытается заставить argparse иметь обязательную опцию (url).Скрипт выполняется и завершается ошибкой, даже если он выполняется без обязательной опции.Когда используется опция --help, скрипт отображает руководство по использованию, но также запускает остальные части скрипта, я ожидаю, что он покажет использование, но не выполнит.

Я уверен, что это что-то простоеЯ просто не вижу ..

Спасибо, и если есть что-то, что я должен добавить, пожалуйста, спросите.

...