2012-07-12 1 views
1

J'ai une configuration de grille de sélénium avec le concentrateur fonctionnant sur le serveur CI (jenkins). Chaque fois que je créer et exécuter mon projet de jenkins il ne parvient pas à exécuter:Le script Selenium webdriver n'exécute pas sendkey() dans IE 8 lors de son exécution depuis jenkins

WebElement inputElement = driver.findElement(By.xpath("//a[contains(@href,\"/Case/Add")]")); 

inputElement.sendKeys(Keys.ENTER); 

ou plutôt le sélénium pense qu'il a fait et passe à la commande suivante à savoir selenium.select("id=LifeOffice", "label=AMP");

Les noeuds sont des machines virtuelles exécutant chacun un autre navigateur et ce problème se produit uniquement lorsque le script est en cours d'exécution sur le navigateur IE 8. Quand j'exécute le script de mon IDE, ça va.

J'ai essayé d'utiliser click(); et ((JavascriptExecutor)driver).executeScript("arguments[0].fireEvent('onclick');",inputElement); et j'ai toujours le même problème ...

Répondre

2

Cela retentit étrangement, mais essayez de jeter un oeil sur la page juste après la commande sendkeys. Si l'élément est juste à l'extérieur ou juste à l'intérieur la fenêtre, touchant presque la frontière, this might have happened to you:

L'élément n'a jamais eu mise au point, car il est caché derrière la barre de défilement/barre d'état du navigateur/un morceau de la page qui couvre il. En général, IE fait défiler l'élément dans la fenêtre d'affichage et le focalise, mais parfois, dans les cas de bordure, ce n'est pas le cas. Et les appels focus (ou clics ou n'importe quoi) sont alors appelés dans la barre d'état/barre de défilement/morceau de page vide.

Une solution de contournement? Je ne connais que deux:

  • changer la résolution de l'ordinateur/taille de la fenêtre/layout IE (faire plein écran ou désactiver les barres d'outils, etc.)
  • assurez-vous de ne jamais changer les résolutions/tailles de fenêtres, etc. et travailler avec JavaScript pur dans ces cas limites:

    ((JavascriptExecutor)driver).executeScript("arguments[0].click()", inputElement); 
    
+0

j'eu une expérience très similaire. Bizarrement c'est arrivé à la fois sur le serveur Jenkins et dans mon IDE. Localement, le redimensionnement de la fenêtre a fait disparaître le problème. Sur le serveur j'ai également redimensionné la fenêtre du navigateur, dans l'espoir que cela changerait le comportement par défaut. Mais au cours de la même période, j'ai également redémarré à la fois le serveur Jenkins et le serveur sur lequel l'application s'exécutait, ce qui peut être une combinaison de facteurs qui ont empêché le problème. –

Questions connexes