typescript - Kann nicht herausfinden, wie man auf Text im Eingabewert wartet
Szenario: Ich muss warten, bis ein bestimmter Text auf der Seite geladen wird. Das Problem, das ich habe, ist, dass der Text der Wert eines Eingabefeldes ist und dieser Wert das Letzte ist, das auf der Seite geladen/erscheint.
Ich habe mich gefragt, ob es eine Möglichkeit gäbe, dem Dramatiker zu sagen:
warte darauf, dass der Textwert in diesem Eingabefeld="Text Eingabewert" ist
Ich habe await this.page.locator('my locator').inputValue(); verwendet, aber ich habe bemerkt, dass der Wert manchmal leer zurückgegeben wird, wenn die Seite etwas länger braucht, um zu laden, also muss ich speziell darauf warten, bevor ich fortfahre.
Im Moment warte ich darauf, dass eine bestimmte API-Anfrage abgeschlossen wird, was für jetzt funktioniert, aber ich habe mich gefragt, ob es einen besseren Weg gibt?
Jede Hilfe wäre willkommen.
Antwort #1
Wie wäre es, wenn Sie die Locator-Assertions verwenden, um einen Wert mit benutzerdefiniertem Timeout zu haben. So etwas wie:
const locator = page.locator('my locator')
await expect(locator).toHaveValue('your value', {timeout: 20000})
Antwort #2
Versuche das:
await page.waitForSelector('text=Log in',{timeout:25000})
Passen Sie den Selektor an, Sie können Text, CSS oder XPath verwenden. Und Sie können den Timeout-Wert auf einen für Sie passenden Wert ändern, er ist in Millisekunden angegeben.
