0

J'utilise actuellement https://github.com/admc/wd/blob/master/doc/api.md sélenium web drive pour tester le site Web. Je veux simplement vérifier si ma vue est en haut de l'écran. J'ai essayé d'utiliser isDisplay() et getLocationInView pour servir à cette fin. Cependant, ils sont soit disponibles en tant que position absolue de l'élément ou de l'affichage en terme de niveau élément et html, au lieu de la vue réelle elle-même.Vérifiez si la vue est en haut de l'écran avec le lecteur Web selenium javascript

J'ai également essayé execute()eval() de lancer javascript pour capturer la fenêtre puis d'évaluer sa valeur d'axe, puisque le sélénium fonctionne avec un vrai navigateur (chrome).

à savoir

...execute("window", function(error, result) { console.log(result) }; 
...execute("console.log(window)", function(error, result) { console.log(result) }; 
...execute("return window", function(error, result) { console.log(result) }; 

Cependant, je ne ai pu obtenir null sur le résultat de ces affirmations.

Je pense que je dois avoir manqué une fonction (même si j'ai lu leur doc API plus de 3 fois).

Donc je suppose que quelqu'un d'autre qui l'utilise doit rencontrer le même problème?

Je pensais déclencher une variable javascript dans le navigateur de test, exécuter une fonction rapide pour obtenir la valeur de l'axe, et l'enregistrer dans un var est une solution viable.

Cependant, je n'étais même pas capable de trouver une solution de travail pour obtenir simplement la window global var. (Oui, après regardé tout le poste concerné indiquent sur l'exécution js avec sélénium)

Toute aide ou direction sur ce sera une grande

* Remarque et oui executeScript n'est plus disponible, du moins pour le sélénium I Je travaille avec maintenant (dernière version selon mon package.json).

* note également IMPORTANT:

J'utilise wd.js comme le lecteur web https://github.com/admc/wd

+0

@alecxe fait !!!! – Ezeewei

+0

@alecxe sur oui, sry, on a eu une erreur, mais j'ai juste éteint ce que j'ai essayé. – Ezeewei

Répondre

1

Alllrighty. J'ai trouvé la solution! C'est assez simple. Je pense que c'était juste parce que wd.js utilisant la chaîne de promesses à tous les temps, donc je ne suis pas capable de sortir n'importe quoi avec juste eval, mais je dois ajouter asserter. donc suivant a parfaitement fonctionné.

browser.eval("window.pageYOffset") 
     .should.eventually.equal('0') 
     .nodeify(done); 

si vous voulez voir ce qui est la valeur window.pageYOffset échouerait manuellement. Prenez-moi deux jours pour comprendre cette chose. J'espère que cela vous fera gagner du temps.