Ketika saya mencari di StackOverflow saya mendapat banyak solusi untuk mendapatkan nilai dari elemen input.
Saya mencoba metode di bawah ini
metode 1:
return serialNumberTextField.getAttribute('ng-model')
.then((text)=>{return serialNumberTextField.evaluate(text);})
.then((evalText) =>{ console.log("serial number in eval method :"+evalText);
return evalText;})
metode 2:
return serialNumberTextField.getAttribute('value')
.then( (text) =>{
console.log("serial number in method :"+text);
return text;})
Saat mencetak dalam dua metode, ia mencetak nilai yang tepat misalnya: - metode1: nomor seri dalam metode eval :assetDF1534 metode2: nomor seri dalam metode :assetDF1534
Saya menggunakan nilai pengembalian di dua tempat
tempat pertama: Variabel 'assetName' diambil dari metode di atas untuk mendapatkan nomor seri.
assetNameTextField.clear().sendKeys(assetName);
tempat kedua:
element(by.xpath("//a[contains(text(),'"+ assetName+"')]")).click();
pertama, ini berfungsi dengan baik dan masukkan nilai 'assetDF1534' di bidang teks nama aset tetapi ketika membuat elemen web menggunakan nama aset gagal karena memberikan 'assetName' sebagai janji, bukan nilai. ketika saya mencetak 'assetName' dalam metode tersebut ditampilkan sebagai janji seperti di bawah ini:
nama aset yang dimasukkan dalam filter adalah :ManagedPromise::2239 {[[PromiseStatus]]: "fulfilled"} nama aset adalah :ManagedPromise::2239 {[[PromiseStatus]]: "fulfilled"}
Sendkeys menangani janji karena ini adalah metode busur derajat tetapi tidak dalam kasus lain. Bagaimana cara mendapatkan nilai alih-alih janji?