【问题标题】:Nightwatch: Error switching to iframeNightwatch:切换到 iframe 时出错
【发布时间】: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


【解决方案1】:

如果其他人遇到这个问题,这看起来像一个铬错误:

https://bugs.chromium.org/p/chromedriver/issues/detail?id=1777

【讨论】:

    【解决方案2】:

    您是否尝试在切换到框架之前添加.pause(1000)

    【讨论】:

      猜你喜欢
      • 2022-08-10
      • 2021-11-05
      • 2018-07-22
      • 2016-04-15
      • 1970-01-01
      • 2017-04-25
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多