質問編集履歴
1
本文修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
seleniumのリモートwebdriverへの接続に失敗する
|
test
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
### 前提
|
2
2
|
djangoでWEBアプリを作成しています。
|
3
|
-
docker-composeを使用して開発環境を構築していますが、
|
4
3
|
UIテストの実行時、seleniumのリモートwebdriverへの接続がうまくいかず困っています。
|
4
|
+
|
5
|
+
お力添えいただけますと幸いです。
|
6
|
+
|
7
|
+
以下のtest_ui.pyが問題のコードです。
|
5
8
|
|
6
9
|
### 発生している問題・エラーメッセージ
|
7
10
|
|
@@ -104,93 +107,13 @@
|
|
104
107
|
|
105
108
|
~略~
|
106
109
|
```
|
107
|
-
```dockercompose.yml
|
108
|
-
version: '3.7'
|
109
|
-
|
110
|
-
services:
|
111
|
-
# サービス名は自由に設定
|
112
|
-
nyapu:
|
113
|
-
build: ./app
|
114
|
-
# サービス起動後に入力されるコマンドを設定
|
115
|
-
command: python /usr/src/app/nyapu/manage.py runserver 0.0.0.0:8000 --settings nyapu_pj.settings_dev
|
116
|
-
# データを永続化させる場合の設定。`host:container`でパスを記載
|
117
|
-
volumes:
|
118
|
-
- ./app:/usr/src/app
|
119
|
-
# 指定されたポートは接続されたサービスからアクセス可能
|
120
|
-
ports:
|
121
|
-
- 8000:8000
|
122
|
-
# 環境変数を指定
|
123
|
-
env_file: .env
|
124
|
-
# 起動するサービスの依存関係を明記
|
125
|
-
depends_on:
|
126
|
-
- postgres
|
127
|
-
- selenium
|
128
|
-
|
129
|
-
|
130
|
-
postgres:
|
131
|
-
# 公式からイメージをpull
|
132
|
-
image: postgres:10.17-alpine
|
133
|
-
# データベースの永続化
|
134
|
-
volumes:
|
135
|
-
- postgres_data:/var/lib/postgresql/data
|
136
|
-
env_file: .env.db
|
137
110
|
|
138
111
|
|
139
|
-
|
112
|
+
### 試したこと
|
113
|
+
以前は、ホストOSにchromedriverをインストールして正常にテストできていましたが、
|
140
|
-
|
114
|
+
今回dockerを使用するため、リモートwebdriverに変更しました。
|
141
|
-
image: selenium/standalone-chrome-debug:3.141.59-20210929
|
142
|
-
ports:
|
143
|
-
- 4444:4444
|
144
|
-
- 5900:5900
|
145
|
-
shm_size: "2gb"
|
146
115
|
|
147
|
-
|
148
|
-
# トップレベルに書く「名前付きvolumes」は複数サービスから参照できる
|
149
|
-
volumes:
|
150
|
-
postgres_data:
|
151
|
-
```
|
152
|
-
```Dockerfile
|
153
|
-
# 公式からpython3.7 busterイメージをpull
|
154
|
-
FROM python:3.7-buster
|
155
|
-
|
156
|
-
# 作業ディレクトリを設定
|
157
|
-
WORKDIR /usr/src/app
|
158
|
-
|
159
|
-
# 環境変数を設定
|
160
|
-
# Pythonがpyc filesとdiscへ書き込むことを防ぐ
|
161
|
-
ENV PYTHONDONTWRITEBYTECODE 1
|
162
|
-
# Pythonが標準入出力をバッファリングすることを防ぐ
|
163
|
-
ENV PYTHONUNBUFFERED 1
|
164
|
-
|
165
|
-
# aptで依存関係のインストール
|
166
|
-
RUN apt-get update && apt-get install -y unzip wget vim
|
167
|
-
|
168
|
-
# pipenvをインストール
|
169
|
-
RUN pip install --upgrade pip \
|
170
|
-
&& pip install pipenv
|
171
|
-
|
172
|
-
# ホストのpipfiletをコンテナの作業ディレクトリにコピー
|
173
|
-
COPY ./Pipfile /usr/src/app/Pipfile
|
174
|
-
|
175
|
-
# pipfileからパッケージをインストールしてDjango環境を構築
|
176
|
-
RUN pipenv install --skip-lock --system --dev
|
177
|
-
|
178
|
-
# entrypoint.shをコピー
|
179
|
-
COPY ./entrypoint.sh /usr/src/app/entrypoint.sh
|
180
|
-
|
181
|
-
# ホストのカレントディレクトリ(現在はappディレクトリ)を作業ディレクトリにコピー
|
182
|
-
COPY . /usr/src/app
|
183
|
-
|
184
|
-
# entrypoint.shを実行( migrate、collectstaticの処理を記述しています)
|
185
|
-
|
116
|
+
ホストOSで実行した場合もコンテナ上で実行した場合も、どちらも上記の同じエラーで接続失敗したため、test_ui.pyの記述に問題があるようです。
|
186
|
-
```
|
187
|
-
|
188
|
-
### 試したこと
|
189
|
-
docker-compose psのステータスはUPになっており正常です。
|
190
|
-
コンテナ間の接続は問題なく、seleniumのコンテナからseleniumのリモートwebdriver(http://chrome:4444/wd/hub)への接続が問題あるようです。
|
191
|
-
|
192
|
-
dockerを使用する前は、ホストOSにchromedriverをインストールして正常にテストできていましたが、
|
193
|
-
今回dockerを使用するため、リモートwebdriverの記述に変更しました。
|
194
117
|
|
195
118
|
### 補足情報(FW/ツールのバージョンなど)
|
196
119
|
Python 3.7
|