selenium - (MS Dynamics 测试自动化)无法切换到 iframe,帧自动更改
问题描述
我正在尝试使用 Selenium WebDriver 在 MS Dynamics 365 系统中切换帧。我将解释以下问题之一。这是html元素代码: 这里是 元素代码
通常,我曾经使用 id=contentIFrame0 或 1,并且帧切换正常。问题是,MS Dynamics 动态生成这些 iframe,通常包含最多 3 个 iframe(contentIFrame0,contentIFrame1,contentIFrame2),但事实是您永远不知道它们在页面上会是 2 还是 1 以及为什么,所以如果您今天使用其中一个直接 - 明天您的测试将因更改而失败。似乎我必须一直切换到最后一帧,但它是随机工作的,因为有时第一个包含元素,另一个包含脚本。我尝试做的另一件事是切换到一个具有以下属性的 iframe:样式 = 可见性:可见(在此之前,我尝试在控制台中打印驱动程序看到的可见帧数 - 但一直写为 0)。还,
如果有人尝试自动化 MS Dynamics 365 并遇到同样的问题?我可能已经描述了所有情况,也许您会注意到其中的逻辑和差异。
解决方案
很难以这种方式进行测试,因为 Microsoft 不保证正在渲染的对象将保持不变。今天可能是 3 帧,但在下一个版本中,开发团队可能会或多或少地引入,不再支持直接使用 DOM。
我强烈推荐以下用于测试 Dynamics 的框架:https ://github.com/Microsoft/EasyRepro
它将帮助您将测试提升一个级别,它引入了一个抽象级别,以便通过隔离框架代码中的所有低级工作来最大程度地减少直接使用 HTML 的需要。
这是一篇关于 EasyRepro 的精彩文章:http ://www.itaintboring.com/dynamics-crm/easy-repro-what-is-it/
祝你好运
推荐阅读
- python - u"权限 ({0}) 无效。".format( - 尝试安装 pip 时出错
- r - 在 R 中绘制 LASSO 模型的交互效果
- c# - Asp.net Core:无法访问已处置的对象(不同的错误)
- linux - 无法在 Kali Linux 上为 TP-Link WN821N 构建 RTL8192EU 驱动程序
- python - SKLearn 多分类,无需预先了解 Python 中的分类
- r - 在加权无向图中测量社区之间的距离
- vba - 公式计算出值后,如何将公式更改为静态值?
- java - 在spring boot中创建一个REST API来上传Multipart文件数据
- macos - 什么是 CGEvent 中的像素单元(CGScrollEventUnit.pixel)?
- postgresql - Heroku Postgres 在排序时忽略下划线