在相当于量角器的赛普拉斯中切换到iFrame

时间:2018-08-07 07:35:11

标签: javascript iframe cypress

我在自己的SUT(网页)中遇到了一个挑战,该问题在iFrame中以javascript形式嵌入了一个日志。 当我像这样使用量角器时,解决了相同的挑战:

var driver = browser.driver;
var loc = by.tagName('iframe');
var el = driver.findElement(loc);

browser.switchTo().frame(el);

可以在赛普拉斯脚本中进行这种切换吗?

有人可以举一个例子吗?

1 个答案:

答案 0 :(得分:0)

This is not currently possible.但是,存在一种解决方法,可以在iframe中执行操作和声明。这是来自a really nice example的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')
  })
})

此解决方法有一些警告。有关更多信息,请参见this link,但这是引号:

  

...您可以...以这些元素为目标并可能对它们执行操作[但是]您不能返回它们或在cypress命令中使用它们。