2017-07-26 10 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

あなたはそれを固定してうれしい!私はこの問題に関連する酵素のレポを調べました。彼らはセレクターを改善するための解決策に取り組んでいます。 –

+0

ええ、 'find'の引数が普通のcssセレクタ文字列のように扱われないという事実は、とても混乱します!それは文字を探しているようですが、その文字の後のすべての文字は無視されます。 – Infamous911

関連する問題