我第一次使用 testCafe,我正在嘗試撰寫一個測驗來單擊顯示的患者串列中的特定患者的姓名。
我得到的錯誤如下:
無法獲取有關節點的資訊,因為指定的選擇器與 DOM 樹中的任何節點都不匹配。
| 選擇器('[data-cy=Name]')
這是實際的代碼塊:
test
.meta({
code: '4.1',
action: 'From Patient Summaries screen, click a patient name'.
expected: 'Should take user to the weekly Patient Overview screen'
})
.page(url)
('4.1', async t => {
await LoginPageObject.loginAsDoctor();
const patients = Selector('[data-cy=Patients]');
const settingsMenuItem = Selector('[data-cy=name]');
await t.expect(patients.visible).ok().click(patients);
await t.expect(Selector('[data-cy=table-row-0]').visible).ok()
await t.expect(settingsMenuItem.textContent)
.contains("Charles Shetland")
.click(settingsMenuItem);
await VnVScreenshot(t, '4.1', fixtureName);
});
我嘗試這樣做const settingsMenuItem = Selector('td [data-cy=Name]');,.contains("Shetland,Charles")從技術上講,這就是名稱的列出方式。
但我仍然收到相同的錯誤Selector('td [data-cy=Name]')。
DOM 層次結構的外觀是:
div
table
thead
tbody
tr
td
uj5u.com熱心網友回復:
沒有樣本很難確定錯誤的確切原因。但是,我在以下幾行中發現了不正確的代碼:
await t.expect(settingsMenuItem.textContent)
.contains("Charles Shetland")
.click(settingsMenuItem);
如果要點擊指定文本的專案,需要使用withText方法:https :
//testcafe.io/documentation/402740/reference/test-api/selector/withtext
await t.click(settingsMenuItem.withText('Charles Shetland'))
如果這沒有幫助,請準備一個演示該問題的示例。
請注意,您可以使用 TestCafe Experimental Debug 功能在 IDE 或 chrome nodejs 控制臺中執行選擇器。詳細參考以下文章: https ://testcafe.io/documentation/402639/reference/command-line-interface#--experimental-debug
uj5u.com熱心網友回復:
所以我能夠解決它的方法是使用一些 testCafe 魔法。
我所做的是將data-cy="Name", 更改為data-cy="call_Shetland Charles".
起初我不確定,但這讓我可以擺脫這個:
const settingsMenuItem = Selector('[data-cy=Name]');
對此:
const settingsMenuItem = Selector('[data-cy*=Charles]');
testCafe 能夠識別我希望它點擊的患者。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/419466.html
標籤:
