为了账号安全,请及时绑定邮箱和手机立即绑定

使用剧作家导航后元素不可见

使用剧作家导航后元素不可见

墨色风雨 2022-12-08 15:43:55
我正在使用 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 测试是什么使元素不可搜索,或者在超链接单击将您带到新网页后验证元素时是否需要处理与超链接相关的基本问题?
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

单击第一个链接将导致导航。所以你需要等待页面导航到谷歌。你可以这样做:

await Promise.all([elements[0].click(), page.waitForNavigation()]);


查看完整回答
反对 回复 2022-12-08
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号