質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

561閲覧

Dockerを使用した Laravel環境で, Dusk テストを行いたいが、値が返ってこない

ttakahashi2013

総合スコア26

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/11/15 14:26

編集2017/11/15 14:38

.env内にて、とサーバーアドレスが設定されており、

php

1APP_URL=http://localhost:8000 2APP_DOMAIN=localhost

web サーバーとして、docker コンテナ apache2 を立ち上げています。
この状態で、duskをテストするために、selenium/standalone-chrome を別のコンテナで立ち上げました。

bash

1docker run -p 4444:4444 --name selenium --link apache2:apache2 -d selenium/standalone-chrome

コンテナ間の接続確認のため、
docker exec -it selenium bash後、
cat /etc/hosts/ の中身が
172.17.0.6 apache2 a1c15575e4c8
が入っており、
seleniumコンテナからapache2にpingは通ることは確認しました。

ただここから

docker

1docker exec apache2 php artisan dusk

でduskテストを行なったところ、
chromeは立ち上がっているものの、localhostに正常にアクセスできていないことがわかりました。(デバッグしてみると中身が何もない状態でした。)

設定が悪いのだろうと思いますが、どこに原因があるか分からないので、お助けいただければ幸いです。

DuskTestCase.php

php

1abstract class DuskTestCase extends BaseTestCase 2{ 3 use CreatesApplication; 4 5 /** 6 * Prepare for Dusk test execution. 7 * 8 * @beforeClass 9 * @return void 10 */ 11 public static function prepare() 12 { 13 static::startChromeDriver(); 14 } 15 16 /** 17 * Create the RemoteWebDriver instance. 18 * 19 * @return \Facebook\WebDriver\Remote\RemoteWebDriver 20 */ 21 protected function driver() 22 { 23 $options = (new ChromeOptions)->addArguments([ 24 '--disable-gpu', 25 '--headless' 26 ]); 27 return RemoteWebDriver::create( 28 'http://selenium:4444/wd/hub', DesiredCapabilities::chrome()->setCapability( 29 ChromeOptions::CAPABILITY, $options 30 ) 31 ); 32 } 33}

ExampleTest.php

php

1class ExampleTest extends DuskTestCase 2{ 3 public function testBasicExample() 4 { 5 $this->browse(function (Browser $browser) { 6 print_r($browser->visit('/')->resolver->elements);exit; 7 $browser->visit('/') 8 ->assertSee('次回から自動ログインする'); 9 }); 10 } 11} 12

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

どうやら selenium/standalone-chrome のバージョンがドライバのバージョンとあっていなかったようです。
使用するコンテナのバージョンを変更することで、使用できるようになりました。

投稿2017/11/17 07:28

ttakahashi2013

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問