【发布时间】:2019-12-05 07:57:26
【问题描述】:
我正在尝试使用 Nightwatch 为 chrome 扩展编写 e2e 测试。该扩展在某些页面上插入 iframe。我可以使用扩展程序启动 chrome,但是当我尝试切换到框架时遇到错误
这是我的测试:
module.exports = {
'My test' : function (browser) {
browser
.url('https://myurl.com')
.waitForElementVisible('iframe[id=my_frame]', 5000)
.frame('my_frame')
.end();
}
};
这是错误信息:
INFO 响应 200 POST /session/b747140552587912484ec27e0d91cd27/frame (6ms) { sessionId: 'b747140552587912484ec27e0d91cd27', 状态: 8,
value: { message: '没有这样的框架:元素不是框架
(会议 信息:chrome=58.0.3029.96)\n(驱动程序信息:chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),平台=Windows NT 6.1.7601 SP1 x86_64)' } } LOG → 完成的命令帧(10 毫秒)
我知道框架在那里,因为我可以暂停测试并检查页面。 nightwatch 也成功在 waitForElementVisible 命令中找到了框架元素。
这是html
<iframe id="my_frame" src="chrome-extension://honkfenocfnhdbpakgenabnlnpgccadm/html/iframe/test.html" scrolling="false" style="width: 440px; transform: translateX(0px);"></iframe>
我做错了什么?
【问题讨论】:
-
看来,如果我降级到 chrome v57 这可行,但它不适用于 chrome v58。 chrome 58 中的更改是否会影响 selenium 处理 iframe 的方式?我正在使用 chromedriver v2.29 供参考
-
认为我也应该添加它似乎只是我无法切换到的 iframe,我可以毫无问题地为其他 iframe 这样做,但在 Chrome 58+ 上却没有只为这个 iframe 工作
标签: selenium google-chrome-extension nightwatch.js