J'essaie d'utiliser le Selenium Remotewebriver en C #, fondamentalement tout ce que je veux faire est de gratter de manière programmée HTML après em> le JavaScript a terminé de manipuler le DOM (sans une fenêtre sans navigateur. .) D'abord j'ai commencé le Selenium-Server.jar Comme: P> suivant J'ai essayé d'exécuter cette ligne à partir d'un cas de test: p> 13:44:55.558 INFO - WebDriver remote server: Executing: [new session: null] at URL: /session)
13:44:55.560 INFO - WebDriver remote server: Exception: java.lang.NullPointerException
4 Réponses :
Si vous essayez d'exécuter SELENIUM2 sur localhost, vous n'avez pas besoin d'utiliser supprimerWebDriver () et Selenium Server - vous pouvez utiliser ce qui suit:
WebDriver driver = new ChromeDriver();
Qui apparaît une nouvelle fenêtre de navigateur.
Si vous en avez besoin pour être complètement masqué, votre seule option avec sélénium serait d'utiliser HTMlunit via Remotewebriver. Utilisez lescapabilities souhaitées.htmlunitwithjs au lieu de descapabilités souhaitées.chrome.
Obtenir le code HTML de la page souhaitée est facile, en particulier dans .NET (utilisez httpwebrequest). L'analysant dans une structure de type DOM et appliquer les transformations indiquées par le JavaScript sur la page, pas tellement. Il nécessite un navigateur, ou à tout le moins, un analyseur HTML avec un moteur de construction DOM, ainsi qu'un moteur de script JS pour manipuler le DOM résultant. Ce n'est pas un problème trivial. À ce stade, vos choix sont les suivants: (1) Utilisez HTMLUNIT, ENV.JS ou l'un des autres projets de navigateur "sans tête", dont aucun ne nécessite webDriver pour faire ce que vous voulez faire; ou (2) vivent avec une fenêtre de navigateur. Et dans le cas de (2), à l'aide de la connexion Internet brute ou de FirefoxDiver (ou ChromeRiver dans le prochain 2.0B4) est un choix plus simple que d'utiliser le serveur distant. P>
Je vois que vous avez déjà une réponse acceptée, mais parce que cela répond à une question complètement différente, je vais ajouter mes 5 cents.
Donc, si vous souhaitez vous connecter à un conducteur Web Supprimer, au lieu de la ligne: p> vous devez faire: p> n'oubliez pas d'inclure l'espace de noms à distance avant la ligne précédente: p> < Pré> xxx pré> p>
Je vois toujours cela "Impossible de se connecter au serveur distant ---> System.net.Sockets.socketException: Aucune connexion n'a pu être faite car la machine cible a activement refusé le 127.0.0.1:4444". Pls aide ..
J'essaie d'utiliser Remotewebriver avec un service multilogique. Mais je reçois "la session non créée: capacités manquantes ou non valides (Informations sur le pilote: ChromeRiver = 73.0.3683.103, plate-forme = Windows NT 10.0.17763 x86_64)"
Étant donné que Chrome 59 est arrivé disponible, vous pouvez exécuter le navigateur en mode sans tête. Voir Ce fil P>
Si vous ne voulez pas une "fenêtre de navigateur apparaissant", le sélénium peut ne pas être le bon outil pour le travail. Il instanciera toujours une fenêtre de navigateur (bien qu'il y ait le pilote HTMLunit, qui gère les choses en mémoire). Que se passe-t-il si vous utilisez
souhaitéeCapabilities.firefox () code>?
Firefox apparaît une nouvelle fenêtre de navigateur. J'ai passé de nombreuses heures avec le pilote HTMLunit porté de Java à une DLL .NET, cependant la moitié de l'heure, il lancerait une exception sans message d'erreur, l'autre moitié du temps qu'il faudrait 15-30 secondes pour faire un web demande.