Javascript Jest单击innerHTML:TypeError:undefined不是函数

Javascript Jest单击innerHTML:TypeError:undefined不是函数,javascript,jsdom,jestjs,grunt-jest,Javascript,Jsdom,Jestjs,Grunt Jest,我试图模拟DOM的点击事件,但出于一些有趣的原因,它就是不起作用 将事件附加到给定的a元素似乎是可行的,但单击该元素只是不断地咒骂我 我这里有什么概念上的错误吗 describe('Dummy', function test() { it('clicks the element', function it() { document.body.innerHTML = ` <div> <inpu

我试图模拟DOM的点击事件,但出于一些有趣的原因,它就是不起作用

将事件附加到给定的a元素似乎是可行的,但单击该元素只是不断地咒骂我

我这里有什么概念上的错误吗

    describe('Dummy', function test() {
    it('clicks the element', function it() {
        document.body.innerHTML = `
            <div>
                <input type="text">
                <a href="http://www.google.fi">This is a regular link</a>
                <button>Some text</button>
            </div>
        `;
        const element = document.getElementsByTagName('a')[0]; // Get the 1st a-element
        element.addEventListener('click', e => {
            console.log('Clicked', e);
        });
        element.click(); // Invokes an error: TypeError: undefined is not a function
        expect(3).toBe(3);
    });
});
description('Dummy',函数测试(){
它('单击元素',函数it()){
document.body.innerHTML=`
一些文本
`;
const element=document.getElementsByTagName('a')[0];//获取第一个a元素
元素。addEventListener('click',e=>{
console.log('Clicked',e);
});
element.click();//调用错误:TypeError:undefined不是函数
期望(3)、期望(3);
});
});
下面是一个在浏览器中工作的示例,但在运行grunt jest时不起作用:

document.body.innerHTML='Some text';
element=document.getElementsByTagName('a')[0];
元素。addEventListener('click',函数(e){
e、 预防默认值();
console.log('clicked:',e)
})

元素。单击()你能在JSFIDLE中发布演示吗?我不能在FIDLE中或在这种环境中运行它。看起来像jsdom中的一个bug。@Bergi你有什么好的进展方向吗??我无法真正升级Jest,因为它需要io.js版本的节点。目前我有:“grunt jest”:“^0.1.3”,“jest”:“^0.1.40”,“jest cli”:“^0.4.19”,嗯,我没有使用
click()
方法,而是尝试在JSFIDLE中使用can you post demo。我无法让它在FIDLE中工作,也无法在这种环境中工作。看起来像是jsdom中的一个bug。@Bergi您有什么好的方法可以继续吗??我无法真正升级Jest,因为它需要io.js版本的节点。目前我使用的是:“grunt jest”:“^0.1.3”,“jest”:“^0.1.40”,“jest cli”:“^0.4.19”,而不是使用
click()
方法,尝试使用