2017-08-31 2 views
1

Node.js v6.11.2, NPM v3.10.10, sélénium WebDriver 3.5.0, sous Windows 7'installer NPM sélénium WebDriver' toujours obtenir Erreur: Impossible de trouver le module 'sélénium WebDriver'

Chaque fois que j'essaie de npm install <--save> selenium-webdriver, je reçois l'avertissement suivant:

F:\Program Files\nodejs>npm install --save selenium-webdriver 
npm WARN saveError ENOENT: no such file or directory, open 'F:\Program Files\nodejs\package.json' 
F:\Program Files\nodejs 
`-- [email protected] 

npm WARN enoent ENOENT: no such file or directory, open 'F:\Program Files\nodejs\package.json' 
npm WARN nodejs No description 
npm WARN nodejs No repository field. 
npm WARN nodejs No README data 
npm WARN nodejs No license field. 

Il a raison, il n'y a pas de fichier F:\Program Files\nodejs\package.json. Plusieurs réinstallations de node.js (j'ai essayé quelques versions), et il n'y a JAMAIS de package.json à cet endroit.

Pourtant, un npm list fait ressembler le sélénium-WebDriver est là:

... 
| +-- [email protected] 
| | `-- [email protected] 
| +-- [email protected] 
| | `-- [email protected] 
| +-- [email protected] 
| `-- [email protected] 
`-- **[email protected]** 
    +-- [email protected] 
... 

Pourtant, chaque fois que je tente de lancer un test qui nécessite sélénium WebDriver (avec une commande comme: « nœud monfichier. js '), module.js: 471 renvoie l'erreur dans le titre "Erreur: Impossible de trouver le module' selenium-webdriver '". Grrrrr. Je suis nouveau dans ce domaine (assez évident, hein?), Mais j'ai passé plus d'une journée à chercher sur le web et je n'ai trouvé aucune information pertinente. Il y a questions similaires ici, mais pas tout à fait la même chose. Quelqu'un sait comment réparer cela? (S'il vous plaît?)

+0

Où se trouve myfile.js? Vous pouvez exécuter 'npm i' dans la racine du projet au lieu du dossier node.JS, voir plus ici: https://stackoverflow.com/questions/19578796/what-is-the-save-option-for-npm -install – LW001

+0

Vous avez raison; ça l'a réparé! Il me semble contre-intuitif d'installer un outil dans le répertoire des tests, plutôt qu'avec les autres outils ... Mais ça a marché. Il n'y a plus d'erreur "Can not find selenium-webdriver". Merci beaucoup!! – mired

Répondre

1

NPM a deux façons de l'installation de paquetages

packages globaux

Vous avez utilisé npm install -g packagename pour cela. Vous utilisez ces installations pour les outils que vous utiliserez généralement sur plusieurs projets. Comme yarn ou babel etc.

paquets locaux

Ceci est pour les paquets qui sont liés à votre projet. Vous voulez qu'ils soient téléchargés dans votre projet actuel uniquement. Pour que cela n'affecte aucun autre projet. Pour cela, utilisez npm install <package> pour cela. Vous n'avez pas besoin d'un fichier package.json si vous installez le package de cette façon. Mais lorsque vous utilisez

npm install --save selenium-webdriver 

Cela indique NPM que vous souhaitez installer le package et que vous souhaitez également mettre à jour votre package.json avec ce paquet. Le paquet est toujours installé localement, mais à mettre à jour package.json, il doit existe

C'est là npm init entre en image pour initialiser votre projet et créer un fichier package.json à l'intérieur.

+0

Cela a finalement résolu mon problème, merci! –