我正在使用 playwright 來實現我的瀏覽器自動化。我單擊一個超鏈接,將我帶到 Google.com,我想在導航后驗證“Google 搜索”按鈕是否存在。這是我的代碼。const textToClick = "Visit Google"const textToVerify = "Google Search"const elements = await page.$$(`text=${textToClick}`)await element[0].click()const elements = await page.$$(`text=${textToVerify}`)const elementLength = elements.lengthconsole.log("Element Length::",elementLength, ":: TexToFind::",textToVerify)當我使用 mocha 測試運行它時,找不到“Google 搜索”按鈕。但是當我通過 visual studio 調試器在節點的主入口文件(main.js)下運行相同的代碼時;我能夠找到“Google 搜索”按鈕。這是 playwright 調試器從 mocha 測試運行中得到的輸出:pw:api => page.goto 開始 +0mspw:api 導航到“file:///C:/devel/devspace/js/myAutomation/test/src/sampleApp.html”,等待“加載”[] + 3mspw:api 導航到“file:///C:/devel/devspace/js/myAutomation/test/src/sampleApp.html”[] +348mspw:api “domcontentloaded”事件觸發 [] +7mspw:api “加載”事件觸發 [] +276mspw:api <= page.goto 成功 +6mspw:api => elementHandle.click 開始 +364mspw:api 嘗試 elementHandle.click 操作 [] +2mspw:api 等待元素可見、啟用且不移動 [] +2mspw:api 元素可見、啟用且不移動 [] +479mspw:api 在需要時滾動到視圖中 [] +1mspw:api 完成滾動 [] +63mspw:api 檢查元素在 (358.64,558.1) [] +66mspw:api 元素確實接收指針事件 [] +188mspw:api 執行 elementHandle.click 操作 [] +2mspw:api elementHandle.click 操作完成 [] +83mspw:api 等待預定導航完成 [] +3mspw:api 導航到“https://www.google.com/” [] +293mspw:api 導航已完成 [] +46mspw :api <= elementHandle.click succeeded +2mssleepingsleeping finishedelement Length:: 0 :: TexToFind:: Google Search1) 測試超鏈接上的點擊功能您會注意到元素長度為零,表示未找到“Google 搜索”按鈕mocha 測試是什么使元素不可搜索,或者在超鏈接單擊將您帶到新網頁后驗證元素時是否需要處理與超鏈接相關的基本問題?
使用劇作家導航后元素不可見
墨色風雨
2022-12-08 15:43:55