我试着用下面的代码定位输入域,但一直收到未定义的错误.在我看来,这是一个框架集相互嵌套的传统网站,这使得使用Cypress在用户名字段中输入或键入变得更加复杂.

import 'cypress-iframe'

describe('Suite Name', () => {

    Cypress.on('uncaught:exception', (err, runnable) => {
        // returning false here prevents Cypress from
        // failing the test
        return false
    })


    it.only('FrameSetExample', () => {
        cy.visit("https://epay.dallascityhall.com/bdisu/public/frameset_top_html.jsp")
        
        cy.get("html > frameset > frame:nth-child(2)").then(($ele) => {
            var ifele = $ele.contents().find("#logonuidfield")
            cy.wrap(ifele).type("sample username")
        })




    })

})

当我try 使用下面的方法"Frame Load"时,它会打开网页,并成功检测到框架,所以要try 其他什么才能让它正常工作.

    it.only('FrameSetExample', () => {
        cy.visit("https://epay.dallascityhall.com/bdisu/public/frameset_top_html.jsp")
        cy.frameLoaded("html > frameset > frame:nth-child(2)")
        

        })

推荐答案

它不是<iframe>,所以使用cypress-iframe可能是错误的,但Cypress给出的处理<iframe>的通用命令很有用.

这个答案How do you select elements in a frame (not iframe)...有一些有用的代码.

唯一的主要困难是获取第二个框架(应用程序框架)并忽略导航框架.

以增量方式构建查询链并在每一步查看DOM时,您会发现有两个窗口--必须 Select 第二个窗口才能进入输入域.

cy.document().find('frameset')
  .find('frame[name="billerdirect_application"]')
  .then($frame => $frame[0].contentWindow)
  .then($window => $window[1])                // there are two windows here, take #2
  .its('document')
  .find('#logonuidfield')
  .type('Willie Nelson')
  .should('have.value', 'Willie Nelson')

Javascript相关问答推荐

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

如何才能拥有在jQuery终端中执行命令的链接?

深嵌套的ng-container元素仍然可以在Angular 布局组件中正确渲染内容吗?

如何粗体匹配的字母时输入搜索框使用javascript?

我的服务工作器没有连接到我的Chrome扩展中的内容脚本.我该怎么解决这个问题?

在JS中拖放:检测文件

如何使用子字符串在数组中搜索重复项

我创建了一个创建对象的函数,我希望从该函数创建的对象具有唯一的键.我怎么能做到这一点?

如何将多维数组插入到另一个多维数组中?

rxjs插入延迟数据

如何将innerHTML字符串修剪为其中的特定元素?

第三方包不需要NODE_MODULES文件夹就可以工作吗?

未加载css colored颜色 ,无法将div设置为可见和不可见

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

无法重定向到Next.js中的动态URL

使用自动识别发出信号(&Q)

在不扭曲纹理的情况下在顶点着色器中旋转UV

如何更改Html元素S的 colored颜色 ,然后将其褪色为原始 colored颜色

Reaction useState和useLoaderData的组合使用引发无限循环错误

Pevent触发material 用户界面数据网格中的自动保存