Proyek ini terwujud berkat kontributor sukarelawan yang telah meluangkan ribuan jam waktu mereka, dan membuat kode sumber tersedia secara gratis di bawah Lisensi Apache 2.0.
Gambar Docker ini dilengkapi dengan beberapa tag untuk menyederhanakan penggunaannya, lihat di salah satu rilis kami.
Untuk mendapatkan notifikasi rilis baru, tambahkan diri Anda sebagai pengamat "Rilis saja".
Gambar-gambar ini dipublikasikan ke registri Docker Hub di Selenium Docker Hub.
Apakah Anda memerlukan bantuan untuk menggunakan image Docker ini? Bicaralah dengan kami di https://www.selenium.dev/support/
--shm-size="2g"docker run -d -p 4444:4444 -p 7900:7900 --shm-size= " 2g " selenium/standalone-firefox:4.26.0-20241101Arahkan pengujian WebDriver Anda ke http://localhost:4444
Itu saja!
(Opsional) Untuk melihat apa yang terjadi di dalam penampung, kunjungi http://localhost:7900/?autoconnect=1&resize=scale&password=secret.
Untuk detail lebih lanjut tentang memvisualisasikan aktivitas kontainer, periksa bagian Debugging.
☝️ Saat menjalankan docker run untuk gambar yang berisi browser, harap gunakan flag --shm-size=2g untuk menggunakan memori bersama host.
☝️ Selalu gunakan gambar Docker dengan tag lengkap untuk menyematkan browser dan versi Grid tertentu. Lihat Konvensi Pemberian Tag untuk detailnya.
Mulai dari tag gambar berbasis 4.21.0 dan seterusnya, arsitektur yang didukung oleh proyek ini adalah sebagai berikut:
| Arsitektur | Tersedia |
|---|---|
| x86_64 (alias amd64) | ✅ |
| aarch64 (alias arm64/armv8) | ✅ |
| armhf (alias arm32/armv7l) | ❌ |
Browser berikut tersedia dalam gambar multi-lengkungan:
| Arsitektur | krom | Kromium | Firefox | Tepian |
|---|---|---|---|---|
| x86_64 (alias amd64) | ✅ | ✅ | ✅ | ✅ |
| aarch64 (alias arm64/armv8) | ❌ | ✅ | ✅ | ❌ |
| armhf (alias arm32/armv7l) | ❌ | ❌ | ❌ | ❌ |
Catatan:
Google tidak membuat Chrome ( google-chrome ) untuk platform Linux/ARM. Oleh karena itu, gambar Chrome (node dan mandiri) hanya tersedia untuk AMD64. Demikian pula, Microsoft tidak membangun Edge ( microsoft-edge ) untuk platform Linux/ARM.
Menjalankan image AMD64 dengan emulasi pada platform ARM64 tidak disarankan karena masalah kinerja dan stabilitas.
Untuk Linux/ARM gunakan browser Chromium sumber terbuka. Gambar Chromium (node dan mandiri) tersedia dalam multi-lengkungan.
$ docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latestGambar multi-lengkungan diuji pada CircleCI dengan kelas sumber daya Linux/ARM64. Lihat statusnya di bawah ini.
Untuk image kontainer buruh pelabuhan eksperimental, yang berjalan pada platform seperti Apple M-series atau Raspberry Pi, repositori di seleniumhq-community/docker-seleniarm menyediakan image yang dipublikasikan di registri Seleniarm Docker Hub.
Lihat edisi #1076 untuk informasi lebih lanjut mengenai gambar-gambar ini.
Sekarang, fork Seleniumhq-community/docker-seleniarm telah digabungkan.
Kami menyarankan untuk mengaktifkan fitur eksperimental penyimpanan gambar containerd di Mesin Docker. containerd memahami gambar multiplatform, di mana satu tag gambar dapat merujuk ke varian berbeda yang mencakup berbagai arsitektur OS dan perangkat keras. Ini menyederhanakan proses pembuatan, penyimpanan, dan distribusi gambar di berbagai platform.
Satu perintah untuk mengaktifkan fitur tersebut di Docker Engine:
make set_containerd_image_storeUntuk membuat semua image untuk multiplatform, jalankan perintah berikut:
PLATFORMS=linux/amd64,linux/arm64 make buildUntuk membuat gambar untuk platform tertentu, jalankan perintah berikut:
PLATFORMS=linux/arm64 make build Secara default, tanpa menentukan variabel PLATFORMS , image dibuat untuk platform linux/amd64 .
Gambar Nightly dibuat di atas build Nightly pada proyek hulu Selenium dengan perubahan terbaru pada cabang utama di repositori ini. Tag gambarnya nightly . Hal ini tidak disarankan untuk menggunakan gambar dalam produksi. Ini hanya untuk tujuan pengujian.
$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:nightlyLihat penulisan buruh pelabuhan untuk memulai dengan gambar Nightly docker-compose-v3-full-grid-nightly.yml
Untuk menjalankan pengujian atau bekerja dengan browser pra-rilis, Google, Mozilla, dan Microsoft mengelola saluran rilis Dev dan Beta bagi mereka yang ingin melihat apa yang akan segera dirilis ke masyarakat umum.
Berikut instruksi untuk menjalankannya dalam mode Standalone:
Chrome Beta:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:betaPengembang Chrome:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:devFirefox Beta:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:betaPengembang Firefox:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:devTepi Beta:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:betaPengembang Tepi:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:devdocker-compose-v3-beta-channel.yml:
# To execute this docker compose yml file use `docker compose -f docker-compose-v3-beta-channel.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-beta-channel.yml down`
version: " 3 "
services:
chrome:
image: selenium/node-chrome:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
edge:
image: selenium/node-edge:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
firefox:
image: selenium/node-firefox:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
ports:
- " 4442:4442 "
- " 4443:4443 "
- " 4444:4444 "docker-compose-v3-dev-channel.yml:
# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dev-channel.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dev-channel.yml down`
version: " 3 "
services:
chrome:
image: selenium/node-chrome:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
edge:
image: selenium/node-edge:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
firefox:
image: selenium/node-firefox:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
ports:
- " 4442:4442 "
- " 4443:4443 "
- " 4444:4444 "Untuk informasi selengkapnya tentang gambar kontainer saluran Dev dan Beta, lihat postingan blog di Browser Saluran Dev dan Beta melalui Docker Selenium.
Firefox
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-firefox:4.26.0-20241101krom
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-chrome:4.26.0-20241101Tepian
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-edge:4.26.0-20241101 Catatan: Hanya satu kontainer Standalone yang dapat berjalan pada port 4444 secara bersamaan.
Ada berbagai cara untuk menjalankan gambar dan membuat Grid dengan Hub dan Node, periksa opsi berikut.
Hub dan Node akan dibuat di jaringan yang sama dan mereka akan mengenali satu sama lain berdasarkan nama containernya. Jaringan Docker perlu dibuat sebagai langkah pertama.
$ docker network create grid
$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-chrome:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-edge:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-firefox:4.26.0-20241101$ docker network create grid
$ docker run - d - p 4442 - 4444 : 4442 - 4444 -- net grid -- name selenium - hub selenium / hub: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - chrome: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - edge: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - firefox: 4.26 . 0 - 20241101Ketika Anda selesai menggunakan Grid, dan container telah keluar, jaringan dapat dihapus dengan perintah berikut:
# Removes the grid network
$ docker network rm gridHub dan Node akan dibuat pada mesin/VM yang berbeda, mereka perlu mengetahui IP masing-masing agar dapat berkomunikasi dengan baik. Jika lebih dari satu node akan berjalan pada Mesin/VM yang sama, node tersebut harus dikonfigurasi untuk mengekspos port yang berbeda.
$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.26.0-20241101$ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 2>
selenium/node-chrome:4.26.0-20241101$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 2> `
selenium / node - chrome: 4.26 . 0 - 20241101 $ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 3>
selenium/node-edge:4.26.0-20241101$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 3> `
selenium / node - edge: 4.26 . 0 - 20241101 $ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 4>
selenium/node-firefox:4.26.0-20241101$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 4> `
selenium / node - firefox: 4.26 . 0 - 20241101 $ docker run -d -p 5556:5556
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 4>
-e SE_NODE_PORT=5556
selenium/node-chrome:4.26.0-20241101$ docker run - d - p 5556 : 5556 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 4> `
- e SE_NODE_PORT = 5556 `
selenium / node - chrome: 4.26 . 0 - 20241101 Docker Compose adalah cara paling sederhana untuk memulai Grid. Gunakan sumber daya tertaut di bawah, simpan secara lokal dan periksa instruksi eksekusi di atas setiap file.
docker-compose-v2.yml
docker-compose-v3.yml
Untuk menghentikan Grid dan membersihkan kontainer yang dibuat, jalankan docker compose down .
docker-compose-v3-swarm.yml
Dimungkinkan untuk memulai Selenium Grid dengan semua komponennya terpisah. Untuk mempermudah, hanya contoh dengan docker composer yang akan diberikan. Simpan file secara lokal, dan periksa instruksi eksekusi di atasnya.
docker-compose-v3-full-grid.yml
| Variabel lingkungan | Pilihan | Jenis | Nilai bawaan | Keterangan |
|---|---|---|---|---|
SE_REJECT_UNSUPPORTED_CAPS | --reject-unsupported-caps | boolean | false | Izinkan Distributor untuk segera menolak permintaan jika Grid tidak mendukung kemampuan yang diminta. |
SE_HEALTHCHECK_INTERVAL | --healthcheck-interval | ke dalam | 120 | Ini memastikan server dapat melakukan ping ke semua Node dengan sukses setelah suatu interval. |
Eksekusi pengujian dapat direkam dengan menggunakan image Docker selenium/video:ffmpeg-7.1-20241101 . Satu container diperlukan untuk setiap container tempat browser berjalan. Artinya jika Anda menjalankan 5 Node/Container Standalone, Anda memerlukan 5 container video, pemetaannya 1-1.
Saat ini, satu-satunya cara untuk melakukan pemetaan ini adalah secara manual (baik memulai container secara manual atau melalui docker compose ). Kami sedang mengulangi proses ini dan mungkin penyiapan ini akan lebih sederhana di masa mendatang.
Gambar video Docker yang kami sediakan didasarkan pada gambar ffmpeg Ubuntu yang disediakan oleh proyek jrottenberg/ffmpeg, terima kasih telah menyediakan gambar ini dan menyederhanakan pekerjaan kami?
Mulai dari tag gambar berbasis 4.20.0 dan seterusnya, gambar Docker video didasarkan pada gambar FFmpeg Ubuntu yang disediakan oleh proyek linuxserver/docker-ffmpeg karena gambar tersebut tersedia untuk multi-platform. Terima kasih telah menyederhanakan proyek kami dan membantu kami maju dengan dukungan berbagai arsitektur.
Catatan :
/videos di dalam wadah video. Petakan direktori lokal untuk mendapatkan video.FILE_NAME untuk menghindari hasil yang tidak diharapkan.Contoh ini menunjukkan cara memulai container secara manual:
$ docker network create grid
$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size= " 2g " selenium/standalone-chrome:4.26.0-20241101
$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-7.1-20241101
# Run your tests
$ docker stop video && docker rm video
$ docker stop selenium && docker rm selenium Setelah container dihentikan dan dihapus, Anda akan melihat file video di direktori /tmp/videos mesin Anda.
Berikut ini contoh penggunaan Hub dan beberapa Node:
docker-compose-v3-video.yml
Berdasarkan dukungan Metadata dalam pengujian. Ketika perekam video disebarkan dengan node browser dengan mengaktifkan SE_VIDEO_FILE_NAME=auto dan menambahkan metadata ke pengujian Anda, nama file video akan mengekstrak nilai kemampuan se:name dan menggunakannya sebagai nama file video.
Misalnya dalam pengikatan Python:
from selenium . webdriver . chrome . options import Options as ChromeOptions
from selenium import webdriver
options = ChromeOptions ()
options . set_capability ( 'se:name' , 'test_visit_basic_auth_secured_page (ChromeTests)' )
driver = webdriver . Remote ( options = options , command_executor = "http://localhost:4444" )
driver . get ( "https://selenium.dev" )
driver . quit () Nama file video keluarannya adalah test_visit_basic_auth_secured_page_ChromeTests_<sessionId>.mp4 .
Jika nama pengujian Anda ditangani oleh kerangka pengujian, dan pastinya unik, Anda juga dapat menonaktifkan penambahan id sesi ke nama file video dengan menyetel SE_VIDEO_FILE_NAME_SUFFIX=false .
Nama file akan dipangkas menjadi 255 karakter untuk menghindari nama file yang panjang. Selain itu, karakter space akan diganti dengan _ dan hanya karakter huruf, angka, - (tanda hubung), _ (garis bawah) yang dipertahankan dalam nama file.
Regex trim dapat dikustomisasi dengan mengatur variabel lingkungan SE_VIDEO_FILE_NAME_TRIM_REGEX . Nilai defaultnya adalah [:alnum:]-_ . Regex harus kompatibel dengan perintah tr di bash.
Pada tingkat penerapan, kontainer perekam selalu aktif. Selain itu, Anda dapat menonaktifkan proses perekaman video melalui kemampuan sesi se:recordVideo . Misalnya dalam pengikatan Python:
options . set_capability ( 'se:recordVideo' , False ) Dalam wadah perekam akan melakukan kueri GraphQL di Hub berdasarkan Node SessionId dan mengekstrak nilai se:recordVideo dalam kemampuan sebelum memutuskan untuk memulai proses perekaman video atau tidak.
Catatan: Untuk mencapai titik akhir GraphQL, kontainer perekam perlu mengetahui URL Hub. URL Hub dapat diteruskan melalui variabel lingkungan SE_NODE_GRID_URL . Misalnya SE_NODE_GRID_URL adalah http://selenium-hub:4444 .
RCLONE dipasang di gambar perekam video. Anda dapat menggunakannya untuk mengunggah video ke layanan penyimpanan cloud. Selain perekaman video yang disebutkan di atas, Anda dapat mengaktifkan fungsi unggahan dengan mengatur variabel lingkungan berikut:
version : " 3 "
services :
chrome_video :
image : selenium/video:ffmpeg-7.1-20241101
depends_on :
- chrome
environment :
- DISPLAY_CONTAINER_NAME=chrome
- SE_VIDEO_FILE_NAME=auto
- SE_VIDEO_UPLOAD_ENABLED=true
- SE_UPLOAD_DESTINATION_PREFIX=s3://mybucket/path
- RCLONE_CONFIG_S3_TYPE=s3
- RCLONE_CONFIG_S3_PROVIDER=GCS
- RCLONE_CONFIG_S3_ENV_AUTH=true
- RCLONE_CONFIG_S3_REGION=asia-southeast1
- RCLONE_CONFIG_S3_LOCATION_CONSTRAINT=asia-southeast1
- RCLONE_CONFIG_S3_ACL=private
- RCLONE_CONFIG_S3_ACCESS_KEY_ID=xxx
- RCLONE_CONFIG_S3_SECRET_ACCESS_KEY=xxx
- RCLONE_CONFIG_S3_ENDPOINT=https://storage.googleapis.com
- RCLONE_CONFIG_S3_NO_CHECK_BUCKET=true SE_VIDEO_FILE_NAME=auto akan menggunakan id sesi sebagai nama file video. Ini memastikan bahwa nama file video unik untuk diunggah. Konstruksi nama file video secara otomatis berfungsi berdasarkan titik akhir /status Node (dan titik akhir GraphQL opsional) untuk mendapatkan ID sesi, kemampuan.
SE_VIDEO_UPLOAD_ENABLED=true akan mengaktifkan fitur unggah video. Di latar belakang, ini akan membuat pipefile dengan file dan tujuan untuk digunakan dan dilanjutkan oleh pengunggah.
SE_VIDEO_INTERNAL_UPLOAD=true akan menggunakan RCLONE yang dipasang di wadah untuk diunggah. Jika Anda ingin menggunakan wadah sespan lain untuk mengunggah, setel ke false .
| Variabel ENV per mode | Hub/Node | Peran yang berdiri sendiri | Jaringan Dinamis |
|---|---|---|---|
SE_VIDEO_RECORD_STANDALONE (wajib) | false (standar) | true | true |
DISPLAY_CONTAINER_NAME (wajib) | masukan pengguna | masukan pengguna | (tidak wajib) |
SE_NODE_PORT (opsional) | 5555 | 4444 | (tidak wajib) |
SE_NODE_GRID_URL (opsional) | masukan pengguna | (tidak wajib) | (tidak wajib) |
Untuk variabel lingkungan dengan awalan RCLONE_ digunakan untuk meneruskan konfigurasi jarak jauh ke RCLONE. Anda dapat menemukan informasi lebih lanjut tentang konfigurasi RCLONE di sini. Saat menggunakan Dynamic Grid, variabel tersebut harus digabungkan dengan awalan SE_ , misalnya SE_RCLONE_ . Lihat referensi di bawah untuk lebih jelasnya.
Konfigurasikan perekaman dan pengunggahan video untuk Hub dan Node: docker-compose-v3-video-upload.yml
Konfigurasikan perekaman dan pengunggahan video untuk peran Mandiri: docker-compose-v3-video-upload-standalone.yml
Konfigurasikan perekaman dan pengunggahan video untuk Dynamic Grid (node-docker): docker-compose-v3-video-upload-dynamic-grid.yml
Konfigurasikan perekaman dan pengunggahan video untuk Dynamic Grid standalone (standalone-docker): test/docker-compose-v3-test-standalone-docker.yaml
| Variabel lingkungan | Nilai bawaan | Keterangan |
|---|---|---|
SE_UPLOAD_RETAIN_LOCAL_FILE | false | Simpan file lokal setelah berhasil diunggah |
SE_UPLOAD_COMMAND | copy | Perintah RCLONE digunakan untuk mentransfer file. Terapkan move ketika penyimpanan file lokal false |
SE_UPLOAD_OPTS | -P --cutoff-mode SOFT --metadata --inplace | Opsi lain milik perintah RCLONE dapat diatur. |
SE_UPLOAD_CONFIG_FILE_NAME | upload.conf | File konfigurasi untuk host jarak jauh alih-alih disetel melalui awalan variabel env SE_RCLONE_* |
SE_UPLOAD_CONFIG_DIRECTORY | /opt/bin | Direktori file config (ubah ketika file conf di direktori lain di-mount) |
Grid 4 memiliki kemampuan untuk memulai container Docker sesuai permintaan, ini berarti ia memulai container Docker di latar belakang untuk setiap permintaan sesi baru, pengujian dijalankan di sana, dan ketika pengujian selesai, container tersebut akan dibuang.
Mode eksekusi ini dapat digunakan dalam peran Standalone atau Node. Mode eksekusi "dinamis" perlu diberi tahu image Docker apa yang akan digunakan saat container dimulai. Selain itu, Grid perlu mengetahui URI daemon Docker. Konfigurasi ini dapat ditempatkan di file toml lokal.
Anda dapat menyimpan file ini secara lokal dan memberi nama, misalnya, config.toml .
[ docker ]
# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to
# start a container with the given image.
configs = [
" selenium/standalone-firefox:4.26.0-20241101 " , ' {"browserName": "firefox"} ' ,
" selenium/standalone-chrome:4.26.0-20241101 " , ' {"browserName": "chrome"} ' ,
" selenium/standalone-edge:4.26.0-20241101 " , ' {"browserName": "MicrosoftEdge"} '
]
host-config-keys = [ " Dns " , " DnsOptions " , " DnsSearch " , " ExtraHosts " , " Binds " ]
# URL for connecting to the docker daemon
# Most simple approach, leave it as http://127.0.0.1:2375, and mount /var/run/docker.sock.
# 127.0.0.1 is used because internally the container uses socat when /var/run/docker.sock is mounted
# If var/run/docker.sock is not mounted:
# Windows: make sure Docker Desktop exposes the daemon via tcp, and use http://host.docker.internal:2375.
# macOS: install socat and run the following command, socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock,
# then use http://host.docker.internal:2375.
# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.
url = " http://127.0.0.1:2375 "
# Docker image used for video recording
video-image = " selenium/video:ffmpeg-7.1-20241101 "
# Uncomment the following section if you are running the node on a separate VM
# Fill out the placeholders with appr