2017-07-26 76 views
1

我構建了包裝:酶 - 芒無法找到id元素

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輸入肯定是存在的。我錯過了什麼嗎?

回答

2

看來,您正在使用的ID選擇#Form-input[0]-fields-field1但我相信[]是無效的CSS IDs,也許你可以按名稱搜索輸入,並input[name="Form-input[0]-fields-field1"]工作?如果我錯了,方括號確實沒問題,您可能仍然需要在查詢中將它們轉義出來!

+0

你是對的!但是,wrapper.find似乎不允許轉義字符。因此,我最終通過調用wrapper.find({id:'Form-input [0] -fields-field1'})來解決這個問題。 – Infamous911

+0

很高興你解決它!我檢查了Enzyme的回購有關這個問題 - 他們正在尋求改進選擇器的解決方案。 –

+0

是的,'find'的參數不像普通的css選擇器字符串那樣被處理是超級混淆!它似乎在尋找這個角色,在這個角色它忽略了那個角色之後的所有其他角色。 – Infamous911