10
votes

Erreur lors de l'enregistrement du nœud Phantomjs dans la grille de sélénium

J'ai le problème suivant

  • J'ai lancé avec succès le hub de grille de sélénium avec:

    Java -jar Selenium-Server-Server-Standalone-2.53.0.jar - HUB -Role

    • Après cela, j'ai essayé de lancer le nœud Phantomjs avec:

      Phantomjs --WebDriver = 8090 --WebDriver-selenium-Grid-hub = http: // localhost: 4444


      Mais a eu une erreur:

      [Info - 2016-03-25T13: 56: 28.397Z] Ghostdriver - Main - Courir sur Port 8090 [Info - 2016-03-25T13: 56: 28.397Z] Ghostdriver - Main - Enregistrement à Selenium Hub ' http: // localhost: 4444 ' version: en utilisant '127.0.0.1:8090' avec org.openqa.grid.selenium.proxy.defaultemoteProxy comme proxy distant. [Erreur - 2016-03-25T13: 56: 28.400Z] Ghostdriver - Main.Fail - {"Ligne": 97, "Sourceurl": "Phantomjs: //platform/hub_register.js", "Stack": "S'inscrire @ Phantomjs: //platform/Hub_register.js: 97: 79 \ nglobal Code @ Phantomjs: //code/main.js: 78: 37 "}

      Phantomjs: //platform/console++.js: 263 Par erreur

      Le nœud standard fonctionne bien, mais Phantomjs échoue. Ce que je fais mal?


0 commentaires

7 Réponses :


5
votes

Solution de contournement *** Source D / L de Phantomjs http://phantomjs.org/build.html et modifier hub_register.js dans le src / ghostdriver Commentaires des lignes comme indiqué ci-dessous:

// var ghostdriver = GhostDriver || {}; xxx

compile et tout fonctionne!

raccourci: https://github.com/darwin10/phantomjs

Source originale: https://github.com/detro/hhostdriver/issues/394


1 commentaires

Merci beaucoup) téléchargé .zip de [thin]: Github.com/darwin10/Phantomjs lancé ' Build.sh 'Lancé Noode Phantomjs Tout fonctionne bien pour moi) une chose - je ne sais pas si c'est assez stable (la version fantôme est 2.0.1-Développement), mais c'est une autre question.



0
votes

J'ai eu le même problème. Au lieu de télécharger le code source et la compilation, comme suggéré par Ojen G., j'ai utilisé un correctif posté par Neuro -sys pour modifier l'exécutable. Mon système d'exploitation est Ubuntu 16.04.

  1. Télécharger le programme de remplacement.commun. P> XXX PRE> LI>

  2. Compiler le programme P> XXX PRE> LI>

  3. Remplacez la chaîne de code source Java en binaire, créant un binaire fixe. P> XXX PRE> LI>

  4. faire exécuter binaire; et mettre en remplacement p> XXX PRE> LI> ol>

    Après ces étapes, il fonctionne bien (HUB SELENIUM en cours d'exécution): P>

    phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://localhost:4444
    [INFO  - 2016-05-07T16:33:35.534Z] GhostDriver - Main - running on port 8080
    [INFO  - 2016-05-07T16:33:35.534Z] GhostDriver - Main - registering to Selenium HUB 'http://localhost:4444' version:  using '127.0.0.1:8080' with org.openqa.grid.selenium.proxy.DefaultRemoteProxy as remote proxy.
    [INFO  - 2016-05-07T16:33:35.604Z] HUB Register - register - Registered with grid hub: http://localhost:4444/ (ok)
    


1 commentaires

le remplacement n'a pas fonctionné, mais la modification du binaire a fait l'affaire



1
votes

Essayez de remplacer localhost avec IP locale

Phantomjs --WebDriver = 8090 --WebDriver-selenium-Grid-hub = http: // localhost: 4444

avec

Phantomjs --WebDriver = 8090 --WebDriver-selenium-grid-hub = http: //127.0.0.1: 4444


0 commentaires

0
votes

Suivre cet essentiel: https://gist.github.com/neuro-sys/41e368839A9B20DAFB34

Modification du binaire pour mettre un // devant la ligne incriminée travaillée pour moi, mais pas la chaîne remplace la chose.

-> Suivez la pièce sur l'utilisation de HDEX

Rechercher des Platform:

et remplacer par // atform:

en remplaçant les lettres pl avec // ( 2f2f en hex)


0 commentaires

6
votes

Pour toute personne cherche toujours, il existe des bâtiments Linux et Windows X64 disponibles ici avec la solution de contournement de V2.1.1 (Windows Build se trouve sur une demande de traction - La solution de contournement Hex Solution ne fonctionne pas pour Windows COS Les .exe sont compressés)

https://github.com/mrorgues/phantomjscustomédition


0 commentaires

1
votes

Vous pouvez remplacer une partie du fichier binaire avec la commande dd .
Je vais remplacer plate-forme: avec // atform: : xxx

Si vous ne pouvez pas localiser la chaîne, essayez d'augmenter les octets par ligne ( xxd -c 256 ).


0 commentaires

1
votes

J'ai passé 2 mois à essayer de résoudre ce problème, essayant tout ce qui est possible, mon problème principal était que de nombreuses solutions ne se connectent pas à la grille, et celles qui font sont dans des conteneurs Docker, ce qui ne peut se connecter qu'à une grille locale hébergée. sur le même hôte Docker.

Alors ... j'ai enfin construit ma propre solution qui fonctionne: https://github.com/madhavajay/selenium-node-phantomjs

Docker Image est Madhavajay / Selenium-Node-Phantomjs

Il utilise des phanomjs 2.1.1 Construction personnalisée avec un ghostdriver fixe, puis mes propres modifications à la dernière fourchette de Ghostdriver pour permettre à un paramètre Personnalisé -RemoteHost Panamel Tout enroulé dans un conteneur Docker avec des variables d'environnement configurables.

J'espère que cela sauver quelqu'un les semaines perdues que j'ai subies.


0 commentaires