protractor/selenium “could not find chromedriver at” (on Windows)

前端 未结 14 1800
感动是毒
感动是毒 2021-01-30 12:45

I installed protractor following this tutorial and when i use webdriver-manager update it says:

selenium standalone is up to date.
chromedriver is up to date.


        
相关标签:
14条回答
  • 2021-01-30 13:24

    I followed that tutorial and had the same problem. The issue here was that you need to specify the path to your selenium jar and chrome driver exe in your protractor config file. Mine was installed globally in AppData folder so this is what mine protractor.confg.js file looks like:

    exports.config = {
    
    specs: [
        'test/e2e/**/*.js'
    ],
    
    chromeDriver: 'C:/Users/<username>/AppData/Roaming/npm/node_modules/protractor/selenium/chromedriver.exe',
    
    seleniumServerJar: 'C:/Users/<username>/AppData/Roaming/npm/node_modules/protractor/selenium/selenium-server-standalone-2.40.0.jar',
    
    baseUrl: 'http://localhost:9000/'
    
    };
    

    That seemed to do the trick.

    0 讨论(0)
  • 2021-01-30 13:25

    If on Windows, you may need to set an HTTP_PROXY environment variable. Try these steps in your command prompt, assuming your proxy server is http://proxy.you.com:8080.

    1. SETX HTTP_PROXY http://proxy.you.com:8080 (It should return SUCCESS: Specified value was saved. You can also do this in System Properties...Advanced...Environment Variables)
    2. Close your command prompt window and reopen. (This ensures your new environment variable will be used in your session.)
    3. Now run your command: webdriver-manager update
    0 讨论(0)
  • 2021-01-30 13:26

    After looking around for a while, I noticed that the package.json file included in the angular phonecat repo defines a update-webdriver task.

    Running that task (with npm run update-webdriver) fixed protractor for me.

    0 讨论(0)
  • 2021-01-30 13:27

    For me the npm install and npm run update-webdriver commands just kept downloading the corrupt Chromedriver_x.xx.zip file. So I tried running webdriver-manager update, and it worked.

    0 讨论(0)
  • 2021-01-30 13:31

    I encountered similar issue when I followed angular's tutorial:

    https://docs.angularjs.org/tutorial/step_03

    and checked out the code accordingly:

    git checkout -f step-3
    

    Within angular-phonecat/package.json devDependencies, the protractor version is "~1.0.0", which caused npm always download a corrupted file:

    angular-phonecat/node_modules/protractor/selenium/chromedriver_2.10.zip

    Because the above zip file can't be opened properly, so below error exists:

    /Users/karlli/dev/projects/angular-phonecat/node_modules/protractor/node_modules/adm-zip/zipFile.js:66 throw Utils.Errors.INVALID_FORMAT; ^ Invalid or unsupported zip format. No END header found

    There are 2 solutions:

    1. symbol link the correct one instead

    ln -sf ~/dev/projects/angular-phonecat/node_modules/chromedriver/bin/chromedriver node_modules/protractor/selenium/chromedriver.exe

    Thanks @bronson :-)

    1. upgrade protractor's dependency version After several tests, I found the minimal workable version is 1.1.0.

    angular-phonecat/package.json

    "devDependencies": {
        "karma": "^0.12.16",
        "karma-chrome-launcher": "^0.1.4",
        "karma-jasmine": "^0.1.5",
        "protractor": "~1.1.0",
        "http-server": "^0.6.1",
        "tmp": "0.0.23",
        "bower": "^1.3.1",
        "shelljs": "^0.2.6"
    },
    
    0 讨论(0)
  • 2021-01-30 13:33

    I was facing this error too and by the time I read the tutorial, it did not cover how to install protractor and the webdriver as local dependencies to your project (which are located in ./node_modules).

    If this is what you prefer (probably because you might want to use grunt-protractor-runner and run your test later in a continuous build manner as I neede) instead of installing it globally, this solution worked for me:

    1. Install protractor:

    npm install protractor --save-dev

    1. Install selenium and the webdrivers with the webdriver-manager by running:

    ./node_modules/protractor/bin/webdriver-manager update

    After calling this command have a look at ./node_modules/protractor and it subfolders to verify it. A folder called selenium with the chromedriver in should be available in it.

    Note that as protractor was not installed as "global", calling it from the command line will result in a "commnad not found" error. You can run it instead with this command: ./node_modules/protractor/bin/protractor

    Additionaly, it might be a good idea to add a script definition to your package.json, so that next time you install all your dependencies from zero, npm setup the webdrivers automaticaly. For that add this to your package.json file: "scripts": { "postinstall": "./node_modules/protractor/bin/webdriver-manager update" }

    Hope this helps you further...

    0 讨论(0)
提交回复
热议问题