2013-02-28 5 views
1

Je reçois l'erreur suivante lorsque vous essayez d'interagir avec certains éléments:Sélénium :: WebDriver :: Erreur :: MoveTargetOutOfBoundsError

Element cannot be scrolled into view:javascript:void(0); (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)

Cela vient lors de l'interaction avec un modal (Bootstrap) juste après un Appel AJAX même si l'élément est dans le navigateur et est visible. Une solution de contournement que j'ai trouvé était que je suis allé à nouveau manuellement à la page (cela n'a pas gâché les scénarios de test).

Y a-t-il une meilleure méthode pour de telles erreurs?

Répondre

2

Test ajax est difficile. C'est parce qu'il est asynchrone;)
Vous devez donc attendre que certains objets se produisent sur votre page.
Et puis selon votre framework, certaines transitions ou animations sont faites, vous devez aussi les attendre. Pour ce que vous devez attendre exactement, cela dépend de votre application et du framework JS que vous utilisez. Il peut s'agir d'une classe CSS, d'un ID ou d'autre chose.
Par exemple, avec jQuery mobile, vous devez attendre que la classe css ui-mobile-viewport-transitioning soit supprimée, puis la transition est terminée et vous pouvez poursuivre les tests.

Voici un exemple de code Java pour attendre:

webdriverWaiter.waitUntil(ExpectedConditions.invisibilityOfElementLocated(By.cssClass("ui-mobile-viewport-transitioning"))); 

espoir qui aide

+0

Merci. J'avais effectivement mis en place une étape d'attente qui m'a aidé. –

Questions connexes