7
votes

Utilisation de Selenium Remotewebriver en C #

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>

C: \ Program Files \ SELENIUM-SERVEUR> JAVA -JAR "C: \ Program Files \ Selenium-Server \ selenium-server.jar " strong> p> xxx pré>

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


2 commentaires

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 () ?


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.


4 Réponses :


3
votes

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();


2 commentaires

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.



0
votes

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.


0 commentaires

12
votes

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: xxx

vous devez faire: xxx

n'oubliez pas d'inclure l'espace de noms à distance avant la ligne précédente: < Pré> xxx


2 commentaires

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)"



0
votes

Étant donné que Chrome 59 est arrivé disponible, vous pouvez exécuter le navigateur en mode sans tête. Voir Ce fil


0 commentaires