2016-08-08 103 views
1

Ich habe eine Reaktionskomponente, die, wenn ich in ein Symbol klicke, den Status ändern und dann habe ich eine Eingabe anstelle des Symbols.Click funktioniert nicht mit react component + capypara

Wenn ich versuche, das in meinem Test zu simulieren, wird Capybara die Komponente nicht ändern.

Es besteht die Möglichkeit, dass der Click wegen des Capybara nicht funktioniert. Oder einfach nicht funktionieren, weil es eine Reaktionskomponente ist?

Komponente:

render() { 
    return (
    <div> 
     { this.state.editable ? this.renderEditableComponent() : this.renderNotEditableComponent() } 
    </div> 
) } 

    renderEditableComponent() { 
    return (
    <EditableDeliverLimit 
     value={ this.state.value } 
     handleClick={ this.handleClick.bind(this) } /> 
) } 

    renderNotEditableComponent() { 
    return (
     <NotEditableDeliverLimit 
     value={ this.state.value } 
     handleClick={ this.handleClick.bind(this) } /> 
) } 

Test:

Then "should successfuly change deliver limit" do 
    wait_for_selector_appearance("##{ad_table_row_id(@ad)} .ad-table-row-deliver-limit span") 
    find("##{ad_table_row_id(@ad)} .ad-table-row-deliver-limit span").click 
    wait_for_selector_disappearance("##{ad_table_row_id(@ad)} .ad-table-row-deliver-limit span") 
end 
+0

Funktioniert der Code außerhalb von Capybara? Können Sie etwas von Ihrem Code teilen, damit wir das als ein Problem betrachten können? – Justin

+0

Ja! Wenn ich außerhalb des Tests teste, funktioniert alles gut. Ich bearbeite meine Frage, um etwas Code zu schreiben. – Marina

+0

Welchen Treiber verwenden Sie mit Capybara? –

Antwort

0

Die Version von PhantomJS und Qt WebKit Sie verwenden sind veraltet und nicht unterstützen Function.prototype.bind, die durch Reagieren erforderlich ist. Upgrade auf PhantomJS 2.1.1+ und Rebuild capybara-WebKit mit Qt 5.5.1

+0

Nach der Installation von Qt5 wurde das qtWebkit entfernt. Was kann ich tun? – Marina

+0

@Marina Sie installiert 5.6 nicht 5.5.1 –

+0

Ich installierte QT55 dann rebuilded Capybara-Webkit und immer noch nicht funktioniert – Marina