javascript - 在 cypress 中切换到 iFrame 相当于 Protractor
问题描述
我在我的 SUT(网页)中遇到了一个挑战,该挑战在 iFrame 中嵌入了一个作为 javascript 的日志。当我像这样使用 Protractor 时,同样的挑战得到了解决:
var driver = browser.driver;
var loc = by.tagName('iframe');
var el = driver.findElement(loc);
browser.switchTo().frame(el);
是否可以在 cypress 脚本中进行这种切换?
有人可以举个例子吗?
解决方案
目前这是不可能的。但是,有一种解决方法可以在 iframe 中执行操作和断言。这是 GitHub 上 tscott-au 的一个非常好的示例:
cy.get('#myIframe')
.then(function ($iframe) {
const $jbody = $iframe.contents().find('body')
const $body = $jbody[0]
cy.wrap($body).find('#myField').should('exist')
})
})
此解决方法有一些注意事项。有关更多信息,请参阅此链接,但这里有一个报价:
...您可以...针对这些元素并可能对它们执行操作 [但]您不能返回它们或在 cypress 命令中使用它们。
推荐阅读
- mysql - Mysql 从服务器 a 转储到服务器 b 上的文件
- eclipse-pde - java.lang.NoSuchMethodError: javax.media.opengl.GLDrawableFactory.initSingleton()V 试图运行基于 worldwind 的应用程序
- wordpress - 自定义永久链接结构:按语言组织的多种自定义帖子类型
- python - 在 PyTorch 中,如何在训练期间使某些模块“参数”保持静态?
- ruby-on-rails - 切换到 selenium 后,CI 将无法为 Rails 项目正确执行
- python - 制作一个数组,每个数组有 10 个项目
- android - 如何确保应用程序处于后台模式时不会杀死 Flutter 进程
- react-native - 开玩笑:测试套件无法运行(Expo SDK 需要 Expo 才能运行)
- java - 尝试单击包含空格的超链接
- .htaccess - 如何设置 X-Frame-Options?