omr*_*don 10 javascript reactjs jestjs
使用笑话进行测试时,我看到该属性innerText
未定义,而未经测试,它具有正确的值。
it('get text from div', () => {
const div = document.createElement('DIV')
div.innerHTML = '<br>a<br>b<br>c'
console.log('innerText', div.innerText) // undefined
console.log('textContent', div.textContent) // 'abc'
// expect(getTextFromDiv(div).length).toMatchSnapshot()
})
Run Code Online (Sandbox Code Playgroud)
但是,如果在笑话测试中未使用相同的代码,innerText将显示:
'a
b
c'
Run Code Online (Sandbox Code Playgroud)
和textContent是'abc'
。
为什么在笑话中的innerText是未定义的,而当不在笑话中时,其值是真实的?
这是它起作用的代码(不是开玩笑):
const addTextInRichTextToPdf = (doc, text, offsetY) => {
const div = document.createElement('DIV')
div.innerHTML = '<br>a<br>b<br>c'
console.log('innerText', div.innerText) // print the real value
console.log('textContent', div.textContent) // 'abc'
...
Run Code Online (Sandbox Code Playgroud)
Gab*_*leu 10
如果您使用的是默认testEnvironment,那么你正在使用jsdom。
您可以检查此问题以查看为什么未在jsdom中实现它:https : //github.com/tmpvar/jsdom/issues/1245
主要问题是这样的事实,即innerText依靠布局引擎进行指导,而jsdom没有布局引擎
如果您想要“全面”的浏览器支持,则可以检查puppeteer
归档时间: |
|
查看次数: |
2637 次 |
最近记录: |