Установить значение атрибута элемента в транспортире - PullRequest
0 голосов
/ 23 января 2019

У меня есть следующий HTML

<ion-input class="nick-name-input input input-md ng-valid ng-dirty ng-touched" name="nickname" type="text" ng-reflect-name="nickname" ng-reflect-model="my nickname" ng-reflect-type="text" style=""></ion-input>

Мне нужно установить значение атрибута ng-reflect-model для этого элемента в транспортире.По сути, мне нужно очистить уже существующее значение в атрибуте ng-reflect-model.

1 Ответ

0 голосов
/ 23 января 2019

Подход 1 - executeScript

Вы можете использовать executeScript для отправки кода JavaScript прямо в браузер. Подробнее об этом здесь https://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.executeScript

Просто замените привет на то, что вы хотите вставить в элемент, и передайте этот элемент как reqElement в моем примере.

let reqElement = await element(by.css('.nick-name-input'));
await browser.executeScript("arguments[0].setAttribute('ng-reflect-model','Hello');", reqElement);

Подход 2 - Обновление с использованием protractor.key.backspace

В качестве альтернативы, если причина, по которой вы делаете это, состоит в том, чтобы ваши изменения были отражены в DOM, вы можете создать такую ​​функцию. Это очистит и текст, и обновит DOM, чтобы пустое значение вступило в силу в атрибуте ng-model-attribute

let clearTextAndModel = async function (reqElement) {
    await reqElement.clear();
    await reqElement.sendKeys('a');
    await reqElement.sendKeys(protractor.Key.BACK_SPACE);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...