我构造包装器:
this.wrapper = mount(<App />, { context: this.store });
然后我尝试通过它的 id 找到某个 HTML 元素:
console.log("WRAPPER:", this.wrapper.debug());
return this.wrapper.find('#Form-input[0]-fields-field1');
包装器无法找到此元素。 console.log输出如下:
WRAPPER:
<Many children/components down...>
<input name="Form-input[0].fields.field1" onBlur={[Function]} onChange={[Function]} onDragStart={[Function]} onDrop={[Function]} onFocus={[Function]} value="asdf" type="text" id="Form-input[0]-fields-field1" disabled={false} />
<Many more things after this...>
所以id正确的input肯定是有的。我错过了什么吗?
最佳答案
看来您正在使用 ID 选择器 #Form-input[0]-fields-field1
但我相信 [
和 ]
对 CSS IDs 无效,也许您可以按名称搜索输入,input[name="Form-input[0]-fields-field1"]
是否有效?如果我错了并且方括号实际上没问题,您可能仍然需要在查询中转义它们!
关于javascript - enzyme - Mount 无法通过 id 找到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45338662/