Контакт с паролями в NAnt создает сценарий

Для браузера Firefox вам необходимо сначала скачать драйвер gecko и указать путь к geckodriver в переменной path

from selenium import webdriver
from selenium.webdriver.firefox.extension_connection import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = 'Provide the path of the geckodriver'
browser = webdriver.Firefox(capabilities=firefox_capabilities)

browser.get('https://www.google.com')
7
задан Don Kirkby 17 November 2008 в 22:09
поделиться

4 ответа

Я использую сценарий на данный момент, но я хотел бы услышать, существует ли предварительно созданный метод, уже доступный. Большое спасибо sundar для приема ForegroundColor.

Я не уверен, имеет ли значение, используете ли Вы Project.Log или идете прямо к Консоли. WriteLine (), какие-либо ниндзя NAnt хотят обучить меня?

Вот сценарий и демонстрационная цель, которая использует его:

<target name="input">
    <script language="C#" prefix="password" >
        <code><![CDATA[
            [Function("ask")]
            public string AskPassword(string prompt) {
                Project.Log(Level.Info, prompt);
                ConsoleColor oldColor = Console.ForegroundColor;
                Console.ForegroundColor = Console.BackgroundColor;
                try
                {
                    return Console.ReadLine();
                }
                finally
                {
                    Console.ForegroundColor = oldColor;
                }
            }
        ]]></code>
    </script>

    <echo message="Password is ${password::ask('What is the password?')}"/>
</target>
8
ответ дан 6 December 2019 в 08:46
поделиться

Решение, которое я использовал много раз, состоит в том, чтобы иметь локальный файл конфигурации, содержащий такие вещи как пароли, строки подключения и т.д., которые характерны для каждого разработчика. Сценарий сборки NAnt будет включать эти настройки при создании.

Локальный файл конфигурации не существует в системе управления версиями, таким образом, пароли не выставляются. В первый раз, когда разработчик проверяет кодовую базу и попытки создать, он должен создать этот файл конфигурации. Для упрощения ему мог быть шаблонный файл, доступный, такой как my.config.template, содержащий все свойства, которые могут быть настроены.

6
ответ дан 6 December 2019 в 08:46
поделиться

Попробуйте это:

<script language="C#" prefix="test" >
          <code>
            <![CDATA[
              [Function("get-password")]
              public static string GetPassword(  ) {
                  Console.WriteLine("Please enter the password");
                  ConsoleColor oldForegroundColor = Console.ForegroundColor;           
             Console.ForegroundColor = Console.BackgroundColor;
                  string password = Console.ReadLine();
             Console.ForegroundColor = oldForegroundColor;
        return password;
              }
            ]]>
          </code>
</script>

<target name="test.password">
 <echo message='${test::get-password()}'/>
</target>

-->
4
ответ дан 6 December 2019 в 08:46
поделиться

При вводе пароля отображаются звездочки:

    <code><![CDATA[
        [Function("ask")]
        public string AskPassword(string prompt) {
            Project.Log(Level.Info, prompt);
            string password = "";

            // get the first character of the password
            ConsoleKeyInfo nextKey = Console.ReadKey(true);

            while (nextKey.Key != ConsoleKey.Enter)
            {
                if (nextKey.Key == ConsoleKey.Backspace)
                {
                    if (password.Length > 0)
                    {
                        password = password.Substring(0, password.Length - 1);

                        // erase the last * as well
                        Console.Write(nextKey.KeyChar);
                        Console.Write(" ");
                        Console.Write(nextKey.KeyChar);
                    }
                }
                else
                {
                    password += nextKey.KeyChar;
                    Console.Write("*");
                }

                nextKey = Console.ReadKey(true);
            }

            Console.WriteLine();

            return password;
        }
    ]]></code>
3
ответ дан 6 December 2019 в 08:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: