2017-08-25 1 views
0

Je crée des scripts phpunit qui testent certains sites web en utilisant le sélénium 2. Ces tests sont exécutés en utilisant le navigateur chrome. 1 des tests est de confirmer qu'il peut localiser un lien sur la page en utilisant xPath, puis cliquez sur le lien. Mais par intermittence, le test échoue et signale l'erreur:Un autre élément recevrait le problème du clic en utilisant phpunit, selenium on chrome

PHPUnit_Extensions_Selenium2TestCase_WebDriverException: unknown error: Element <a href="" ng-click="select()" uib-tab-heading-transclude="" class="ng-binding"> ...</a> is not clickable at point (708, 139). Other element would receive the click: <div class="modal-screen" style=""></div> 

J'ai téléchargé la dernière chromedriver, mais toujours obtenir cette erreur. Quelqu'un at-il rencontré cette erreur? Comment avez-vous contourné ce problème?

Merci

Répondre

1

Le message d'erreur explique le problème

Element ... is not clickable at point (708, 139). Other element would receive the click: <div class="modal-screen" style=""></div>

Le problème est que l'élément que vous essayez de cliquer a un autre élément, l'DIV, au-dessus de celui-ci qui bloque le clic, vous essayons. Dans mon expérience, cela est généralement causé par un dialogue ou un autre élément de l'interface utilisateur est au-dessus de l'élément souhaité. Dans votre cas, en regardant le code HTML de l'élément DIV, il semble que le fond gris derrière une boîte de dialogue modale soit le coupable. Si je devais deviner, il y a quelques possibilités:

  1. Une boîte de dialogue est en
  2. Vous avez fermé une boîte de dialogue, mais il est pas tout à fait encore parti
  3. Certains chargement, etc. spinner est arrivé et vous avez cliqué avant il était parti

Pour résoudre # 1, fermez simplement la boîte de dialogue. Vous devrez peut-être attendre que la boîte de dialogue soit invisible, voir # 2.

Pour résoudre # 2 ou # 3, attendez que le DIV soit invisible et continuez le test. Vous devriez pouvoir utiliser WebDriverWait et attendre que le sélecteur CSS div.modal-screen soit invisible.