AWS CDK を使って Lambda (node.js) の環境で Selenum を動かしたい
わからないこと:
- Selenium って、各言語のラッパーに加えてバイナリファイルも依存があったような
- Lambda のデプロイパッケージにバンドルするやり方がわからん
- node_modules に入れておけば同梱されてるのだろうか?だとすれば話は楽だが。
selenium-standalone install
してみたらちゃんとプロジェクトローカルのパスに入っているらしいことは確認できた。
npx selenium-standalone install
----------
selenium-standalone installation starting
----------
---
selenium install:
from: https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/selenium-server/3.141.59-server.jar
---
chrome install:
from: https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_mac64.zip
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64-chromedriver
---
firefox install:
from: https://github.com/mozilla/geckodriver/releases/download/v0.29.0/geckodriver-v0.29.0-macos.tar.gz
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/geckodriver/latest-x64-geckodriver
---
chromiumedge install:
from: https://msedgedriver.azureedge.net/89.0.774.63/edgedriver_mac64.zip
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/chromiumedgedriver/latest-x64-msedgedriver
---
File from https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_mac64.zip has already been downloaded
---
File from https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar has already been downloaded
---
File from https://github.com/mozilla/geckodriver/releases/download/v0.29.0/geckodriver-v0.29.0-macos.tar.gz has already been downloaded
[====================] 100% https://msedgedriver.azureedge.net/89.0.774.63/edgedriver_mac64.zip
-----
selenium-standalone installation finished
-----
あとは 、
- CDK は
node_modules/.bin/
以下をデプロイ時にバンドルするのかどうか - シンボリックリンクを追跡してバンドルできるかどうか
node_modules/.bin/selenium-standalone
の実体は node_modules/selenium-standalone/bin/selenium-standalone
らしいので、少なくとも実体のバイナリの方は本番の依存関係として定義しておけばパッケージバンドルの処理は CDK にまかせておいて問題なさそう。
node のライブラリから使うには node_modules/.bin/
じゃない方に明示的にパスを通す必要がありそうな気もする。雑にデプロイしてみて検証でいいかもしれない
Selenium と WebDriver って一体何が違うのか??
To use Selenium in your automation project you need to install the language bindings libraries for your language of choice.
In addition you will need WebDriver binaries for the browsers you want to automate and run test on.
ラッパー + WebDriver バイナリが必要なものである、と書いてある
To execute your project and control the browser you need to have browser-specific WebDriver binaries installed.
Download the WebDriver binary supported by your browser and place it in the System PATH.
WebDeiver をインストールして、正しく通るシステムのパスにインストールする必要がある