2013-10-15 5 views
1

Je travaille sur un projet qui consiste à aller sur une page Web, à entrer un terme de recherche et à récupérer des informations sur ce terme de recherche. Saisie d'un terme de recherche entraînera une redirection, et donc je l'ai appeléHtmlUnit: waitForBackgroundJavascript() ne se termine pas?

webClient.waitForBackgroundJavascript(); 

L'idée est que cela retourne 0 fois toutes les redirections javascript sont complètes. Cependant, il semble être continuellement bloqué sur le retour 6. En cours d'exécution d'un temps séparé a-t-il bloqué sur 10. Quelles raisons pourraient provoquer ce ne pas terminer? J'ai attendu environ 10 minutes jusqu'à présent, et la page Web charge presque instantanément dans un navigateur normal.

Répondre

0

Avez-vous essayé de transmettre une valeur longue en tant que paramètre à cette fonction? Je suppose que vous avez, mais juste au cas où, la longue valeur passée à cette méthode attend ce laps de temps (en milis) avant de retourner le nombre de travaux d'arrière-plan javascript encore en cours. Donc, si vous deviez faire:

webClient.waitForBackgroundJavascript(10000); 

Cela signifie que, après dix secondes, vous récupérerez le nombre d'emplois d'arrière-plan en cours. Si elle est bloquée à une certaine valeur de retour, cela signifie que des processus d'arrière-plan qui ont été démarrés n'ont pas été terminés dans le délai spécifié.

Assurez-vous que rien ne se passe en boucle sur une fonction setInterval() dans le code javascript.

Également pour la référence: The HTMLUnit Docs