如何解决如何使用 webdriverIO js 和 mocha 处理 iframe 内容
我希望能够点击同意按钮以同意网站上的 cookie,我知道如何在 selenium webdriver 中执行此操作,但是,我不知道如何使用 js 和 mocha 执行此操作,因为我正在尝试学习任何帮助表示赞赏。
我试过了
browser.switchToFrame($('#sp_message_iframe_207015'));
$(getHighlightedText('Agree')).click();
但是没用
基本上,我启动了网站,然后弹出一个窗口,询问是否同意 cookie 并管理 cookie/偏好,我只想点击同意
#sp_message_iframe_207015
是 Iframe 的 Id
同意元素看起来像这样
<button
tabindex="0"
title="Agree"
aria-label="Agree"
class="message-component message-button no-children"
path="[0,4,1]"
style="padding: 10px 50px; margin: 10px; border-width: 1px; border-color: rgb(0,115,197); border-radius: 20px; border-style: solid; font-size: 14px; font-weight: 600; color: rgb(255,255,255); font-family: "trebuchet ms",helvetica,sans-serif; width: auto; background: rgb(0,197);"
>
Agree
</button>
解决方法
场景如下:
- 确保 iframe 存在
- 使用 browser.switchToFrame 切换到 iframe
- 如果有嵌套的 iframe,请重复步骤 1 - 2
- 在 iframe 中查找元素
就我无法访问您的应用程序而言,让我们想象一下 DOM 结构
body
h1
iframe id="message"
h2
<button title="Agree">Agree</button>
div
// switch to iframe
const mainIframe = $('#main')
expect(mainIframe).toExist()
browser.switchToFrame(mainIframe)
// interact with element within iframe
const agreeButton = $('button[title="Agree"]')
expect(agreeButton).toBeClickable()
agreeButton.click()
// switch back to parent frame
browser.switchToParentFrame()
以下是接受 cookie 并切换到 iframe using webdriverio browser object how to check video is playing or not
的示例 ,谢谢大家
我已经设法让它与以下一起工作
let frame= browser.$('#sp_message_iframe_207015');
browser.pause(5000);
browser.switchToFrame(frame);
browser.setTimeout({ 'implicit': 10000 })
let clickAgree = $('button[title="Agree"]');
clickAgree.click();
browser.switchToParentFrame();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。