Solution : Aujourd'hui (2011-04-13), Selenium gère mal les boîtes de confirmation sous Firefox 4. J'ai dû revenir à Firefox 3.16 et le problème a disparu. Merci encore.
Question originale :
Bonjour aux gourous de Selenium,
J'essaie d'exécuter un test automatisé de navigateur à partir de Java en utilisant Selenium 2.0b3 comme client Java et serveur autonome.
Le serveur démarre un Firefox 4 avec un profil spécifique.
Le test est bloqué à une commande "click" ; il attend et aucun timeout/exception/aucune erreur ne se produit. Pendant ce clic, une boîte de confirmation apparaît, je suppose donc que c'est là le problème, mais je ne sais pas pourquoi cela reste bloqué. Dans Selenium IDE, cette boîte de confirmation n'apparaît pas, mais seulement dans RC.
Le problème n'est pas que le clic ne se produit pas (parce que la boîte de confirmation apparaît), mais que cette boîte de confirmation se bloque. J'ai essayé ce qui suit, mais cela n'a pas aidé :
selenium.click("css=div[id=command_Delete]");
selenium.click("id=command_Delete");
String JSscript = "jQuery('#command_Delete').click();" // See http://api.jquery.com/click/
selenium.runScript(JSscript);
Ce ne sont là que des façons de commencer le clic. Peut-être devrais-je commencer un autre fil en suivant ces liens : http://www.sqaforums.com/showflat.php?Cat=0&Number=567974&an=&page=0&vc=1
Merci : Andras
Code Java :
selenium.click("//div[@id='command_Delete']/span");
//stucks here
//so this is not reached:
String confirmation = selenium.getConfirmation();
HTML :
<div id="command_Delete" class="...">
<div>...</div>
<span>Delete</span>
<div>...</div>
<br><br>
</div>
Javascript :
<script type="text/javascript">
$('command_Delete').addEvent('click',function(){
var isConfirmTrue = confirm('Do you want to delete?');
if (isConfirmTrue) {
var myForm = getFormObj(document, "deleteForm");
submitForm(myForm);
}
});
</script>
Et dans le Java, il attend que le selenium rc réponde :
HttpURLConnection.getInputStream() line: 912 [local variables unavailable]
HttpURLConnection(HttpURLConnection).getResponseCode() line: 367 [local variables unavailable]
HttpCommandProcessor.getResponseCode(HttpURLConnection) line: 147
HttpCommandProcessor.getCommandResponseAsString(String) line: 167
HttpCommandProcessor.executeCommandOnServlet(String) line: 107
HttpCommandProcessor.doCommand(String, String[]) line: 89
DefaultSelenium.click(String) line: 167
...