Вы получили эту ошибку, поскольку массив _1900s_boysnames_uk
может быть пустым, поэтому возвращаемое значение из randomElement()
также может быть nil
, для этого мы считаем возвращаемое значение optional
nil
значений, но это не лучший способ
var firstname: [String?] = []
или вы можете использовать этот синтаксис внутри вашего условия if
if let firstname = _1900s_boysnames_uk.randomElement() {
firstname.append(firstname)
}
var firstname: [String] = []
Это означает, что переменная «firstname» будет содержать список имен
и чтобы добавить новое имя в список, вы будете использовать "append" вроде:
firstname.append(_1900s_boysnames_uk.randomElement())
Если вы хотите назначить ему только имя, используйте:
var firstname: String
в Swift рекомендуется использовать именование верблюжьих соглашение при именовании переменных. Если вы не знаете о случае верблюда, это соглашение об именах, которое использует строчную букву для первого слова в имени переменной, за которым следует заглавная буква для каждого последующего слова.
BLOCKQUOTE>
Я соглашаюсь, что это - проблема. Хорошо иметь новую копию процесса Firefox каждый раз, но немного излишества для удвоения времени запуска путем регенерации профиля Firefox. Если Вы откроете отчет об ошибках на http://jira.openqa.org и пошлете мне по электронной почте по patrick@browsermob.com, то я буду рад удостовериться, что мы получаем решение на месте.
PS: я решил эту проблему как одноразовое для меня. Мы используем тот же профиль Firefox и просто уничтожаем кэш и cookie DB. Но я действительно должен просто исправить, которые возвращаются к источнику Селена.
Это - просто вопрос перемещения кода ниже за пределами Вашей тестовой установки и в установку приспособления, и хранение глобального из экземпляра селена (код принимает NUnit.)
[TestFixtureSetUp()]
public void FixtureSetup()
{
selenium = New DefaultSelenium("localhost", 4444, "*firefox", "http://localhost/");
selenium.Start();
selenium.SetTimeout("30000");
selenium.Open("/");
}
Ваша тестовая установка должна затем выглядеть примерно так:
[SetUp()]
public void SetUpTest()
{
selenium.Open("default.aspx");
selenium.WaitForPageToLoad("30000");
}