2017-10-21 10 views
12

저는 일주일 동안 Laravel Dusk을 테스트 계획에 통합하려고했는데 실제로 예상 결과를 제공 할 수는 없습니다. 여기에 상황은 다음과 같습니다.우분투에서 Laravel Dusk을 올바르게 실행하십시오. 16 wt Laravel 5.5

  • 내가 농가에 Laravel (55)를 실행 해요 (프로젝트 당 설치) PHP 7.1 *
  • 내가 문서의 설치 단계에 따라 황혼를 설치했습니다.

상자 중 테스트가

에서 이미 성공적으로 실행 phpunit을 테스트에서 그렇게 한대로 정확하게 내 phpunit.dusk.xml 파일의 PHP 노드에 바르 예상 출력을 얻을 수 없습니다. 이것이 내가하는 일이다. 나는 그런 나의 홈 페이지 ('/')보기 파일에 입력 필드를 추가

<?php 

namespace Tests\Browser; 

use Tests\DuskTestCase; 
use Laravel\Dusk\Browser; 

class ExampleTest extends DuskTestCase 
{ 
    public function testBasicExample() 
    { 
     $this->browse(function (Browser $browser) 
     { 
      $browser->visit('/')->refresh() 
       ->assertValue('#dusk-test', '1234') 
      ; 
     }); 
    } 
} 

: <input id="dusk-test" value="1234">

나는 원래 예제 테스트의 모드이며, 유일한 시험이다이 테스트를 실행 ... php artisan dusk을 실행하여이이 더욱 혼란, 내가 시험에서 덤프 때 내 출력하기 위해 모든 시간

PHPUnit 6.4.3 by Sebastian Bergmann and contributors. 

E                 1 
/1 (100%) 

Time: 1.07 seconds, Memory: 12.00MB 

There was 1 error: 

1) Tests\Browser\ExampleTest::testBasicExample 
Facebook\WebDriver\Exception\NoSuchElementException: no such element: 
Unable to locate element: {"method":"id","selector":"dusk-test"} 
    (Session info: headless chrome=62.0.3202.62) 
    (Driver info: chromedriver=2.32.498513 (2c63aa53b2c658de596ed550eb5267ec5967b351),platform=Linux 4.4.0-92-generic x86_64) 


    /home/vagrant/landing/vendor/facebook/webdriver/lib/Exception/WebDriverException.php:102 /home/vagrant/landing/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:320 
    /home/vagrant/landing/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:535 
    /home/vagrant/landing/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:175 
    /home/vagrant/landing/vendor/laravel/dusk/src/ElementResolver.php:281 
    /home/vagrant/landing/vendor/laravel/dusk/src/ElementResolver.php:327 
    /home/vagrant/landing/vendor/laravel/dusk/src/Concerns/MakesAssertions.php:632 
    /home/vagrant/landing/tests/Browser/ExampleTest.php:22 
    /home/vagrant/landing/vendor/laravel/dusk/src/TestCase.php:92 
    /home/vagrant/landing/tests/Browser/ExampleTest.php:24 

    ERRORS! 
    Tests: 1, Assertions: 0, Errors: 1. 

내 출력됩니다. 여기에 내가

<?php 

namespace Tests\Browser; 

use Tests\DuskTestCase; 
use Laravel\Dusk\Browser; 

class ExampleTest extends DuskTestCase 
{ 
    /** 
    * A basic browser test example. 
    * 
    * @return void 
    */ 
    public function testBasicExample() 
    { 
     $this->browse(function (Browser $browser) 
     { 
      $browser->visit('/') 
       ->dump() 
      ; 
     }); 
    } 
} 

을 덤프하고 php artisan dusk를 실행 한 후 내 출력은 다시 절대적으로 내 홈 페이지가 아닙니다

PHPUnit 6.4.3 by Sebastian Bergmann and contributors. 

"<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>" 

방법입니다. 나는 또한 vendor/laravel/dusk/src/Browser.php에서 $url 값을 버리고 내 프로젝트가 올바른 APP_URL을 얻었습니다.

나는 손실에 처해있다. 황혼은 올바른 위치에 전송되고 있으며 페이지에는 명확하게 입력 값이 있습니다. 그러나, 나는 12345가 요소에서 검색된 것으로 예상되는 출력을 제공하기 위해 황혼을 얻을 수 없습니다.

모두에게 감사드립니다. 내가 말하고 아마도 어떤

+0

나는 똑같은 문제가있다.chromedriver 디버깅을 통해 크롬이 올바른 끝점으로 이동하고 올바른 데이터를 반환하는지 확인할 수도 있습니다. –

+1

HTTPS 사이트입니까? (더 이상 Selenium과 Xvfb는 필요하지 않습니다.) –

+0

https 사이트가 아닙니다. 나는 현재 셀레늄을 사용하고 있지 않지만 Xvfb 세션을 시작하고있다. 이제 더 이상 필요하지 않습니까? 앞에서 언급했듯이 황혼에서부터 웹 페이지를 지시하는 크롬, 페이지 탐색 및 렌더링에 이르기까지 모든 것이 작동합니다. webdriver와 dusk 사이의 페이지 내용이 손실됩니다. –

답변

3

잘못입니다 ...하지만 Laravel 황혼은 dusk 대신 id해야 할 것 같다 : dusk="dusk-test" 등이. 또한 전화 후에 : $browser->visit('/')>refresh() ->assertValue('@dusk-test', '1234') 그리고 의사와 같아야합니다. Github 사람에

+1

시도해 보셨습니까? – jeteon

+0

정말로, 나는 'juste suggesting. 하지만 이걸 보게되면 : 요소를 찾을 수 없습니다 : { "method": "id", "selector": "dusk-test"} 그리고 문서를 읽으면 오류가 여기에서 오는 것처럼 보입니다. – JeremyGi

+0

문제는 스크린 샷을 보면 완전히 비어 있습니다. 응답을 덤프하면 입니다. 그래서 찾을 수있는 요소가 없습니다. –

0

.env 파일에 http://https://를 대체하여 자신의 문제를 해결했다.