angular / webdriver-manager

A binary manager for E2E testing
MIT License
225 stars 117 forks source link

Error unzipping chromedriver (intermittently) #440

Open jsking216 opened 4 years ago

jsking216 commented 4 years ago

We are seeing this error randomly, maybe 1 out of 200 builds in our CI environment. It looks similar to old ratelimiting errors, but the curl appears to have succeeded before the unzip attempt.

[05:24:48] I/downloader - curl -o/tmp/node_modules/webdriver-manager/selenium/chromedriver_79.0.3945.36.zip https://chromedriver.storage.googleapis.com/79.0.3945.36/chromedriver_linux64.zip

[05:24:48] I/downloader - curl -o/tmp/node_modules/webdriver-manager/selenium/chromedriver_79.0.3945.36.zip https://chromedriver.storage.googleapis.com/79.0.3945.36/chromedriver_linux64.zip

[05:24:48]I/update - chromedriver: unzipping chromedriver_79.0.3945.36.zip
/tmp/node_modules/webdriver-manager/built/lib/cmds/update.js:232
            throw new Error(`Invalid filename: ${path.resolve(outputDir, fileName)}`);
            ^
Error: Invalid filename: /tmp/node_modules/webdriver-manager/selenium/chromedriver_79.0.3945.36.zip
    at unzip (/tmp/node_modules/webdriver-manager/built/lib/cmds/update.js:232:19)
    at files_1.FileManager.downloadFile (tmp/node_modules/webdriver-manager/built/lib/cmds/update.js:198:9)
    at fs.stat (/tmp/node_modules/webdriver-manager/built/lib/files/downloader.js:72:37)
    at FSReqWrap.oncomplete (fs.js:153:5)
Error: running "./node_modules/@angular/cli/bin/ng e2e --suite smoke" failed with exit code 1
jsking216 commented 4 years ago

Same issue again today, seems to happen somewhat randomly when using webdriver-manager update

`tmp/node_modules/webdriver-manager/built/lib/cmds/update.js:232

        throw new Error(`Invalid filename: ${path.resolve(outputDir, fileName)}`);

        ^

Error: Invalid filename: /tmp/node_modules/webdriver-manager/selenium/chromedriver_80.0.3987.16.zip

at unzip (/tmp/node_modules/webdriver-manager/built/lib/cmds/update.js:232:19)

at files_1.FileManager.downloadFile (/tmp/node_modules/webdriver-manager/built/lib/cmds/update.js:198:9)

at fs.stat (/tmp/node_modules/webdriver-manager/built/lib/files/downloader.js:72:37)

at FSReqWrap.oncomplete (fs.js:153:5)`
dlarr commented 4 years ago

Hello,

I have same issue, but it's always happening

Doing this :

node ./node_modules/protractor/bin/webdriver-manager update --proxy http://MY_USER@MY_PROXY:8080 --versions.chrome=78.0.3904.108 --verbose

I am using webdriver-manager version 12.1.7

[11:21:16] I/version - webdriver-manager 12.1.7
[11:27:50] I/update - geckodriver: unzipping geckodriver-v0.27.0.zip
PATH_TO_PROJECT\node_modules\protractor\node_modules\webdriver-manager\built\lib\cmds\update.js:232
            throw new Error(`Invalid filename: ${path.resolve(outputDir, fileName)}`);
            ^

Error: Invalid filename: PATH_TO_PROJECT\node_modules\protractor\node_modules\webdriver-manager\selenium\geckodriver-v0.27.0.zip

Though i've checked : the file exists !

Maybe could be a credential problem :/

EDIT: Figured it out, in fact the proxy settings of my company are killing this, because when you want to download this kind of file, there is an internet page of warning and you need to click the link to continue the download.

So my chromedriver_78.0.3904.108.zip is not an archive, it's a HTML file with the link i have to click to download the resource

It's not solvable here.