Выбор параметров в тесте спектра

Я разрабатываю настольное приложение, используя Electron и NodeJS, но это не очень важно. Я использую спектр, чтобы проверить свое электронное приложение. Я реализовал функциональность для выбора между различными сохраненными базами данных через выпадающий список с опциями. Когда в раскрывающемся списке выбрана база данных, файл json с учетными данными обновляется в соответствии с выбранной базой данных. Я хочу написать тест, который проверяет, что файл json изменяется при выборе другой опции. Моя главная проблема - смоделировать выбор другой опции из выпадающего меню.

    // Psuedo code for what how I want to solve this
it("DB connection file is updated correctly", function() {
    read in json file with currently selected db credentials as a "before reference".
    simulate the selection of another db in the dropdown list so that json file from before is changed.
    read in changed json file
    assert.notDeepEqual(beforeFile, updatedFile);
});

На чем я застрял, так это в той части, где мне нужно выбрать другой вариант в раскрывающемся списке, чтобы изменить текущую базу данных. Я читал документы Spectron, а также документы WebDrive rIO, но я до сих пор не могу заставить его работать.

В выпадающем меню всегда будет 3 базы данных по умолчанию, указанные в качестве параметров. Я перечислю HTML-код для раскрывающегося списка в:

                        <div id="list-container">
                        <form>
                            <label id="dropdown-label" for="connection-dropdown"><b>Database</b>:</label>
                            <fieldset id="dropdown-fset">
                                <select name="database" id="connection-dropdown">
                                </select>
                            </fieldset>
                        </form>
                    </div>

Застрял в течение более недели, и я не могу найти какой-либо способ решить это онлайн либо. Много вопросов о том, как работать со спектроном, но не было ответов, которые помогли мне в этот раз. Я, наверное, забыл упомянуть что-то, поэтому, пожалуйста, спросите, нужна ли дополнительная информация.

Спасибо!

2 ответа

Вы можете собирать элементы, вы можете собирать элементы "select" в #list-container, после чего вы можете использовать эти элементы.

То, на чем я застрял, - это та часть, где мне нужно выбрать другой вариант в раскрывающемся списке, чтобы изменить текущую базу данных.

Я не вижу фактических элементов option в вашем HTML, но если у вас будет что-то вроде этого:

<select name="database" id="connection-dropdown">
    <option value="someValue0">uno</option>
    <option value="someValue1">dos</option>
    <option value="someValue2">tres</option>
    <option value="someValue3">cuatro</option>
    <option value="someValue4">cinco</option>
    <option value="someValue5">seis</option>
</select>

Затем вы можете применить одну из нескольких опционных команд. Одним из них является selectByVisibleText (). Эта ссылка имеет хороший пример. Поместите эту настройку в beforeAll().

Другие вопросы по тегам