12
votes

Comment puis-je inclure ChromeRiver dans un pot?

J'écris un programme Web-Automatisation et jusqu'à présent, cela fonctionne bien à l'aide de FirefoxDriver de Selenium. Cependant, je veux le faire utiliser chrome si Firefox n'est pas installé. J'ai téléchargé le chromedriver, mettez-le dans un dossier dans mon projet Eclipse et le dirige. Après que j'ai ajouté system.setproperty ("webdiver.chrome.driver", "pilotes / chromedriver.exe"); ça a fonctionné bien. Cependant, lorsque j'essaie de l'exporter (à l'aide de l'exportation standard d'Eclipse). Il se bloque, je crois parce que cela ne trouve pas le chromedriver (je pense que cela parce que l'exportateur avec FirefoxDiver fonctionne bien).

J'ai essayé de changer le .jar à un .zip afin de regarder à l'intérieur, et je vois que le dossier Driver a été dépouillé, en mettant simplement chromedriver.exe à l'intérieur du pot de niveau supérieur. J'ai essayé de changer la propriété sur system.setproperty ("webdiver.chrome.driver", "chromedriver.exe"); mais toujours en panne.

Est-ce que quelqu'un sait pourquoi le pot exporté est incapable de trouver chromedriver , malgré le fait que j'ai vérifié que c'est dans le pot?

merci, Daniel


4 commentaires

Cela semble un peu idiot de demander que vous avez "chromedriver.exe", mais il est répertorié comme une minuscule "chromedriver.exe". Avez-vous essayé de le changer en minuscule encore?


Typo simple, corrigé maintenant. (Dans mon code actuel, il est minuscule partout)


Juste pour être clair, cela ne résout pas votre problème réel?


Non, la même erreur reste. Je voulais juste dire que j'ai réparé la faute de frappe ici.


3 Réponses :


1
votes

C'est dans le pot mais ne peut pas être exécuté (comme essayer d'exécuter un fichier .exe à partir d'un fichier zip), vous devez l'extraire avant de l'exécuter


3 commentaires

Ok, comment allais-je faire ça?


Voir l'exemple ici: Stackoverflow.com/Questtions/ 12531766 / ...


MERCI! Ça a marché! J'ai eu un léger problème de l 'endroit où placer le chromedriver pour qu'il soit trouvé, mais qui a été corrigé lorsque je l'ai mis dans le dossier src . Encore une fois, merci!



4
votes

Exporter votre code comme pot sans chromedriver. Créer un dossier chromedriver. Placez votre chromedriver.exe dans ce dossier. Placez le dossier ChromeRiver avec votre pot.

n'oubliez pas de définir la propriété système dans le code sur xxx

s'il vous plaît laissez-moi savoir si cela fonctionne pour vous.


3 commentaires

Bien que je ne vois aucune raison pour que cela ne fonctionnerait pas, j'aimerais vraiment pouvoir autoriser l'utilisateur à télécharger un seul type de fichier. Cette méthode devrait fonctionner, bien que le jar ne soit plus autonome.


Cela marche. Bien qu'il ne réponde pas directement à la question, c'est une méthode plus élégante. Le maintien des fichiers binaires WebDriver devrait être de la responsabilité de l'environnement en l'utilisant, car le pot peut être exécuté dans différents environnements / plates-formes. Vous pouvez simplement emballer le pot et le chromedriver.exe dans un zip.


Impressionnant..!! Cela a fonctionné pour moi .. Merci pour l'aide .. :)



6
votes

Vous devez l'extraire avant de l'exécuter. Copiez votre pilote sous SRC / Ressources / Pilotes / Chromedriver.exe

Maintenant, chaque fois que vous exécutez ce code, il créera un nouveau dossier "pilote" où que vous mettiez votre pot annoncé et copiez votre pilote, que vous pouvez accéder. < / p> xxx


0 commentaires