我想檢查文本是否QUEUED出現在網站上。我嘗試了以下命令
await expect(page1).toContainText('[QUEUED]');
await expect(page1.locator('span')).toContainText('[QUEUED]');
但是在第一個示例中,它說需要一個“定位器”,而對于第二個示例,它說
Error: strict mode violation: "span" resolved to 108 elements:
我對確切的元素不感興趣,我只想檢查文本是否QUEUED在頁面上至少出現一次。
我還嘗試選擇 HTML DOM 中看起來像的確切元素
<span data-v-729cd282="" class="">QUEUED</span>
使用運算式
await expect(page1.locator('(//span[@data-v-729cd282])[6]')).toHaveText('[QUEUED]');
但在這里我也得到一個錯誤
waiting for selector "(//span[@data-v-729cd282])[6]"
那么如何正確地做到這一點呢?
uj5u.com熱心網友回復:
在第一種情況下,您需要一個定位器,在第二種情況下,您的定位器發現太多元素。
您確實需要對確切的元素感興趣(即使它可以是頁面上的任何元素),您將如何定位它們并斷言文本是否存在?
您應該通過使用文本作為定位器在頁面上找到一個元素,并檢查它是否存在,從而知道文本在頁面上,例如
const element = await page.getByText('QUEUED');
await expect(element !== undefined ).toBeTruthy();
所以你應該關心找到一個元素,不管它是什么元素,只要你試圖驗證它在頁面上的存在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533294.html
標籤:打字稿剧作家
上一篇:vueref屬性無法正確推斷型別
下一篇:在嵌套函式中讀取泛型型別的屬性
