Для браузера 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')
Я использую сценарий на данный момент, но я хотел бы услышать, существует ли предварительно созданный метод, уже доступный. Большое спасибо 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>
Решение, которое я использовал много раз, состоит в том, чтобы иметь локальный файл конфигурации, содержащий такие вещи как пароли, строки подключения и т.д., которые характерны для каждого разработчика. Сценарий сборки NAnt будет включать эти настройки при создании.
Локальный файл конфигурации не существует в системе управления версиями, таким образом, пароли не выставляются. В первый раз, когда разработчик проверяет кодовую базу и попытки создать, он должен создать этот файл конфигурации. Для упрощения ему мог быть шаблонный файл, доступный, такой как my.config.template, содержащий все свойства, которые могут быть настроены.
Попробуйте это:
<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>
-->
При вводе пароля отображаются звездочки:
<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>