Problems with rfbrowser init

I have try installation at company network and I have problems with grpc

> grpc@1.24.3 install c:\users\xxxx\py37\venv\lib\site-packages\Browser\wrapper\node_modules\grpc

> node-pre-gyp install --fallback-to-build --library=static_library

 

node-pre-gyp WARN Using needle for node-pre-gyp https download

node-pre-gyp WARN Tried to download(400): https://node-precompiled-binaries.grpc.io/grpc/v1.24.3/node-v72-win32-x64-unknown.tar.gz

node-pre-gyp WARN Pre-built binaries not found for grpc@1.24.3 and node@12.13.0 (node-v72 ABI, unknown) (falling back to source compile with node-gyp)

There is a way to download binaries from other url using --grpc_node_binary_host_mirror, but looks like it only affects to node-v72-win32-x64-unknown.tar.gz and then https://node-precompiled-binaries.grpc.io/grpc-tools/v1.9.1/win32-x64.tar.gz download will still failing

Work around for this problem is to install request (https://github.com/grpc/grpc-node/issues/922)

pip install robotframework-browser
cd venv\Lib\site-packages\Browser\wrapper
npm install request
npm install --production

But request has been deprecated, see https://github.com/request/request/issues/3142

And at Jenkins which have more limited accesses, even request installation not help.

14:42:26  node-pre-gyp WARN Pre-built binaries not installable for grpc@1.24.3 and node@12.16.1 (node-v72 ABI, glibc) (falling back to source compile with node-gyp) 
14:42:26  node-pre-gyp WARN Hit error getaddrinfo ENOTFOUND node-precompiled-binaries.grpc.io 
14:42:26  gyp WARN install got an error, rolling back install
14:42:26  gyp ERR! configure error 
14:42:26  gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
14:42:26  gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy or have bad 

Also grpc will be deprecated at 2021 https://www.npmjs.com/package/grpc

Any tips for pre-built binaries issue? I’m not familiar with node.js, so all tips are welcome :slight_smile:

Env in windows laptop and in Jenkins linux node

  • python: 3.7.x
  • node: 12.x
  • npm: 6.x

Please retry installation with the Browser 2.0 release. We have changed the library dependencies and this should not be a problem anymore.

No more grpc problems, but still not working. Any workaround for this?

12:55:11  + rfbrowser init
12:57:17  Installing node dependencies...
12:57:17  Installing rfbrowser node dependencies at /home/jenkins/.local/lib/python3.7/site-packages/Browser/wrapper
12:57:17  npm WARN deprecated tslint@6.1.3: TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.
12:57:17  
12:57:17  npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
12:57:17  
12:57:17  npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
12:57:17  
12:57:17  npm WARN deprecated gulp-header@1.8.12: Removed event-stream from gulp-header
12:57:17  
12:57:17  npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
12:57:17  
12:57:17  npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
12:57:17  
12:57:17  
12:57:17  
12:57:17  > playwright@1.5.2 install /home/jenkins/.local/lib/python3.7/site-packages/Browser/wrapper/node_modules/playwright
12:57:17  
12:57:17  > node install.js
12:57:17  
12:57:17  
12:57:17  
12:57:17  (node:334) UnhandledPromiseRejectionWarning: Error: getaddrinfo ENOTFOUND playwright.azureedge.net
12:57:17  
12:57:17      at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:64:26)
12:57:17  
12:57:17  (node:334) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
12:57:17  
12:57:17  (node:334) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
12:57:17  
12:57:17  npm WARN notsup Unsupported engine for watchpack-chokidar2@2.0.0: wanted: {"node":"<8.10.0"} (current: {"node":"12.16.1","npm":"6.13.4"})
12:57:17  
12:57:17  npm WARN notsup Not compatible with your version of node/npm: watchpack-chokidar2@2.0.0
12:57:17  
12:57:17  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/chokidar/node_modules/fsevents):
12:57:17  
12:57:17  npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
12:57:17  
12:57:17  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
12:57:17  
12:57:17  npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
12:57:17  
12:57:17  npm WARN robotframework-playwright@2.0.0 No description
12:57:17  
12:57:17  npm WARN robotframework-playwright@2.0.0 No repository field.
12:57:17  
12:57:17  
12:57:17  
12:57:17  npm ERR! code ELIFECYCLE
12:57:17  
12:57:17  npm ERR! errno 1
12:57:17  
12:57:17  npm ERR! playwright@1.5.2 install: `node install.js`
12:57:17  
12:57:17  npm ERR! Exit status 1
12:57:17  
12:57:17  npm ERR! 
12:57:17  
12:57:17  npm ERR! Failed at the playwright@1.5.2 install script.
12:57:17  
12:57:17  npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
12:57:17  
12:57:17  
12:57:17  
12:57:17  npm ERR! A complete log of this run can be found in:
12:57:17  
12:57:17  npm ERR!     /ciop/tools/nodejs/node-v12.16.1-linux-x64/lib/node_modules/npm/cache/_logs/2020-10-30T10_57_04_789Z-debug.log
12:57:17  
12:57:17  rfbrowser init completed

That seems like an error with your Internet. Playwright keeps the browser binaries in a custom location and it’s possible that your vpn/firewall/antivirus software doesn’t allow connection.

You could try to disable example each of the above programs one by one and see does it help.

I just downloaded the library as mentionned in the installation instructions with pip install robotframework-browser.

When i run rfbrowser init, it says that it can`t find any module named Browser.

Any ideas why this is happening ?

Thanks for any help

Make sure that you have the recommended versions of python and nodejs
See version requirements here:
MarketSquare/robotframework-browser: Robot Framework Browser library powered by Playwright. (github.com)

Hi anton264,

I have Python 3.8 as well as node.js version 12.16.2.

I think those are OK.

I was wondering if the rfbrowser init command needs to be run with an elevated command prompt ?

Thanks

Can anyone help me with the following situation?
When I run the command “rfbrowser init”, the chromium download fails:

(node:1316) UnhandledPromiseRejectionWarning: Error: Failed to download chromium, caused by
Error: getaddrinfo ENOTFOUND playwright.azureedge.net

at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)

at d:\instalacoes\python\lib\site-packages\Browser\wrapper\node_modules\playwright\lib\install\installer.js:102:19

at async validateCache (d:\instalacoes\python\lib\site-packages\Browser\wrapper\node_modules\playwright\lib\install\installer.js:101:9)

at async installBrowsersWithProgressBar (d:\instalacoes\python\lib\site-packages\Browser\wrapper\node_modules\playwright\lib\install\installer.js:60:5)

(Use `node --trace-warnings ...` to show where the warning was created)

(node:1316) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

(node:1316) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

However when I run the command “python -m Browser.entry init” the failure occurs when downloading firefox:

chromium v844399 downloaded to D:\Instalacoes\Python\lib\site-packages\Browser\wrapper\node_modules\playwright\.local-browsers\chromium-844399

(node:8560) UnhandledPromiseRejectionWarning: Error: Failed to download firefox, caused by

Error: getaddrinfo ENOTFOUND playwright.azureedge.net

at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)

at D:\Instalacoes\Python\lib\site-packages\Browser\wrapper\node_modules\playwright\lib\install\installer.js:102:19

at async validateCache (D:\Instalacoes\Python\lib\site-packages\Browser\wrapper\node_modules\playwright\lib\install\installer.js:101:9)

at async installBrowsersWithProgressBar (D:\Instalacoes\Python\lib\site-packages\Browser\wrapper\node_modules\playwright\lib\install\installer.js:60:5)

(Use `node --trace-warnings ...` to show where the warning was created)

(node:8560) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

(node:8560) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Am I doing something wrong?

Error: getaddrinfo ENOTFOUND

Your connectivity on the machine you are trying to init is failing. ENOTFOUND indicates that the the machine is trying to query IP address of the host (in this case, playwright.azureedge.net) and that fails.

Check your network and dns resolver settings on that particular machine.

You should user right python version… I used Python 3.8 in this one… when also ex. 3.11 version is installed…

C:\Users<username>\AppData\Local\Programs\Python\Python38\python.exe -m Browser.entry init