tengo un boton:
<button id="saveBtn" data-dismiss="modal" class="btn btn-primary save">Save</button>Cuando se hace clic, induce una llamada AJAX y modifica la página:
$('.tab-pane').on('click', 'button.save', function() { swot_type = $('#typeValue').val(); label = $('#label').val(); details = $('#details').val(); $.ajax({ url: '/add_swot_entry/', type: "POST", data: { 'type': swot_type, 'label': label, 'details': details }, dataType: 'json', success: function (data) { $("#strength-group").append( '<li id=' + data.id + ' class="list-group-item item-display">' + data.label + '</li>' );}});}); También oculta el modal de arranque a través del data-dismiss .
Todo esto funciona bien, siempre, excepto cuando trato de operarlo con Selenium:
browser.find_element_by_id("saveBtn").click()Si bien el modal aún se cerrará cada vez, el Javascript personalizado solo se ejecutará cada cuarta o quinta vez. La mayoría de las veces, la página no cambia y no se comunica con el servidor.
He intentado implementar una espera:
wait.until(EC.element_to_be_clickable((By.ID, elm)))Pero no parece ayudar. Acabo de actualizar a la versión más reciente de Selenium (3.3.3) y todavía tengo problemas. Estoy usando Chrome en Windows 10.