获取VUEjs Package 器测试实用程序的最外层

anauzrmj  于 2023-02-05  发布在  Vue.js
关注(0)|答案(1)|浏览(137)

我正在写一个VueJS的测试,我想访问HTML的最外层。但是,不管我使用什么方法,最外层总是被忽略。有没有什么方法可以访问这个最外层,然后对它做一些事情(比如,outermostLayer.removeAttribute('key')

const originalHTML = '<main key="outermost-layer"><main>content</main></main>';     
const component = {
    template: originalHTML
};
const wrapper = mount(component);
await flushPromises();
console.log(wrapper.element.querySelector('main')); // only return the inner main       
console.log(wrapper.element.getElementsByTagName('main')); //only the inner one
brtdzjyr

brtdzjyr1#

您只获得了内部元素,因为外部元素是您的 Package 器。使用attachTo挂载选项。

const wrapper = mount(component, {
    attachTo: document.body
  });

然后你可以做下面的事情,虽然我认为这取决于版本。我建议更新到最新和最好的!

console.log(wrapper.findAll('main').length); // 2 - This confirms there are 2x main elements.
  console.log(wrapper.findAll('main')[0]); // 0 - The first element.
  console.log(wrapper.findAll('main')[0].attributes('key')); // undefined - This doesn't appear to work...

一个快速测试表明对属性的支持可能不存在吗?
文件:www.example.comhttps://v1.test-utils.vuejs.org/api/options.html#attachto
注意:当附加到DOM时,应该在测试结束时调用wrapper. destroy(),从文档中删除呈现的元素并销毁组件示例。

相关问题