javascript - document.querySelectorAll 在使用 chrome 80 运行的 cypress 中不起作用

标签 javascript dom automated-tests cypress

在 chrome DOM 中执行 document.querySelectorAll 时,它通常返回值,但是在 cypress 中作为函数执行时,document.querySelectorAll 总是返回空。

const itensText = []
  const url = area => cy.url().should('contain', area)
  const arrayItens = () => {
    const itensCount = document.querySelectorAll("*[data-cy='areas-item']").length
    console.log(itensCount, 'contador');
    for(var i=0; i<itensCount; i++) {
      itensText.push(document.querySelectorAll("*[data-cy='areas-item']")[i].innerText);
    };
  }
<ul data-cy="areas-holder" class="styled__AreasHolder-kUDyGB leBHiV"><li data-cy="areas-item" class="styled__AreasItem-ejSxag jdRdwx"><a data-cy="Oncogenética" class="styled__AreasItemLink-yXJfI jaazQV" href="/exames?area=Oncogenética"><svg class="styled__AreasItemIcon-iWyosv kXRKoO"><use xlink:href="#gene-mutation"></use></svg>Oncogenética</a></li><li data-cy="areas-item" class="styled__AreasItem-ejSxag jdRdwx"><a data-cy="Doenças Raras" class="styled__AreasItemLink-yXJfI jaazQV" href="/exames?area=Doenças Raras"><svg class="styled__AreasItemIcon-iWyosv kXRKoO"><use xlink:href="#petri-dish"></use></svg>Doenças Raras</a></li><li data-cy="areas-item" class="styled__AreasItem-ejSxag jdRdwx"><a data-cy="Neurogenética" class="styled__AreasItemLink-yXJfI jaazQV" href="/exames?area=Neurogenética"><svg class="styled__AreasItemIcon-iWyosv kXRKoO"><use xlink:href="#genome"></use></svg>Neurogenética</a></li></ul>

Chrome DOM

enter image description here

Crypress 与 Chrome 80 DOM

enter image description here

我需要用每个项目的值构建一个数组,以便在将来的场景测试中使用

最佳答案

要访问测试页的文档,您应该使用 cy.document() command以获得引用。您作为全局访问的文档属于 Cypress 运行程序,但测试页面位于具有不同文档引用的 iFrame 内。

cy.document().then((doc) => {
  const itensCount = doc.querySelectorAll("*[data-cy='areas-item']").length
  ...
})

关于javascript - document.querySelectorAll 在使用 chrome 80 运行的 cypress 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60439448/

相关文章:

javascript - 为什么在回调中取消 bluebird promise 会停止 setInterval?

javascript - 使用 javascript 优化解析(提取)json 数据

html - 从 Firefox Desktop 中的 HTML5 <video> 元素中删除 "foggy screen"/white 覆盖

typescript - 在没有 "webdriver-manager start"的情况下运行 Protractor 测试

testing - TestCafe 运行两次测试

javascript - 如何在 IE 中使用 mootools 捕获点击事件中的 currentTarget?

javascript - Nodejs 返回 HTTP 请求

javascript - 在 JS/Jquery 中针对不同分辨率和屏幕尺寸在热图上映射鼠标点击坐标

javascript - 在 AngularJS 中使用自定义指令进行模板化是否正确?

javascript - 小写/大写字符串比较问题