Мой скрипт должен иметь 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, скрипт отображает руководство по использованию, но также запускает остальные части скрипта, я ожидаю, что он покажет использование, но не выполнит.
Я уверен, что это что-то простоеЯ просто не вижу ..
Спасибо, и если есть что-то, что я должен добавить, пожалуйста, спросите.