Когда я ищу в StackOverflow, я получаю несколько решений для получения значения из элемента ввода.
Я пробовал ниже методы
метод 1:
return serialNumberTextField.getAttribute('ng-model')
.then((text)=>{return serialNumberTextField.evaluate(text);})
.then((evalText) =>{ console.log("serial number in eval method :"+evalText);
return evalText;})
метод 2:
return serialNumberTextField.getAttribute('value')
.then( (text) =>{
console.log("serial number in method :"+text);
return text;})
При печати двумя методами он печатает точное значение, например: - method1: серийный номер в методе eval:assetDF1534 method2: серийный номер в методе:assetDF1534
Я использовал возвращаемое значение в двух местах
первое место: переменная 'assetName' является перехватом из приведенных выше методов для получения серийного номера.
assetNameTextField.clear().sendKeys(assetName);
Второе место:
element(by.xpath("//a[contains(text(),'"+ assetName+"')]")).click();
во-первых, он работал нормально и вводил значение «assetDF1534» в текстовое поле имени ресурса, но когда дело доходит до создания веб-элементов с использованием имени ресурса, произошел сбой, потому что он дает «имя_актива» в качестве обещания вместо значения. когда я печатаю «имя_актива» в этих методах, отображаемых как обещание, как показано ниже:
имя актива для ввода в фильтр: ManagedPromise::2239 {[[PromiseStatus]]: "выполнено"} имя актива: ManagedPromise::2239 {[[PromiseStatus]]: "выполнено"}
Sendkeys обработал обещание, поскольку это метод транспортира, но не в другом случае. Как получить значение вместо обещания?