2017-11-20 27 views
0

私はドッカーで3画像 - webserver,およびseleniumを作っています。Laravel dusk + docker-compose + selenium + firefox:未定義インデックス要素

私はそれをWebサーバーにexecし、php artisan duskを実行します。

私のアプリはでWelcomeを返す単純なhttpsページです。 しかし、私はErrorException: Undefined index: ELEMENTを得ました。

セレンimage: selenium/standalone-firefox

test: 
... 
$this->browse(function (Browser $browser) use ($user) { 
    $browser 
    ->visit('/home') 
    ->assertSee('Welcome'); 
}); 


DuskTestCase.php 
... 
protected function driver() { 
    return RemoteWebDriver::create(
    'http://selenium:4444/wd/hub', DesiredCapabilities::firefox()->setCapability(
     'acceptInsecureCerts', true 
    ) 
); 
} 

答えて

0

これはgeckodriverとSeleniumの間の非互換性によるものである:

https://github.com/facebook/php-webdriver/issues/492

は、FirefoxとSeleniumのためには、Seleniumの機能にenablePassThrough=falseを追加する必要があります。以下のような

何か:

protected function driver() { 
    return RemoteWebDriver::create(
    'http://selenium:4444/wd/hub', DesiredCapabilities::firefox() 
     ->setCapability('acceptInsecureCerts', true) 
     ->setCapability('enablePassThrough', false) 
); 
} 

は、おそらくトリックを行う必要があります。