Open6

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 って一体何が違うのか??

https://www.selenium.dev/documentation/en/selenium_installation/

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 バイナリが必要なものである、と書いてある

ログインするとコメントできます