2016-09-13 2 views
0

밍크과 함께 헤드리스 브라우저 (phantomjs)를 사용하여 제 웹 사이트에서 기능 테스트를하고 있습니다.
이제이 설정에서 파일을 정기적으로 다운로드 할 수 없습니다 (예 : 링크 클릭). 그래서 링크 또는 버튼에서 URL을 추출하고 수동으로 파일을 다운로드해야합니다.
내가 방금 언급 한 바와 같이밍크에서 링크/버튼 클릭을 시뮬레이트하는 방법이 있습니까?

때때로이 다운로드에 대한 링크 () 없지만, 양식에서 버튼 (예 : 양식의 보고서에 데이터를 입력 및 제출에 대한 보고서 파일을 수신) .

그래서 내가해야 할 일을 링크 또는 버튼을 클릭을 시뮬레이션하고 전송을했을 것을 요청에 대한 데이터를 추출하고 데이터 파일을 수동으로 다운로드하는 것을 사용한다.

방법이 있습니까?
참고 : 실제로 파일을 다운로드하려면 guzzle을 사용하고 있습니다.

+0

요소를 찾기 위해 사용할 수있는 Mink의 find 메소드가 있어야합니다.이 메소드는 객체를 반환하고 거기에서 클릭을 사용하거나 필요한 URL을 제공해야하는 href 속성을 얻을 수 있습니다. 클릭하면 css로 찾기를 클릭하십시오. – lauda

+0

그 이유는 그것이 반드시 링크가 아니라는 것입니다. 파일에 대한 요청은 'POST'일 수도 있습니다. – user2268997

답변

1

음 ... 당신이 이것을 해결했는지는 일반적인 밍크 방법의 대안으로 만 알 수 있습니다. Phantomjs는 자바 스크립트 기반 브라우저 엔진이므로 자바 스크립트로 시도 했습니까?

당신은이 같은 시도 할 수 있습니다 : 당신은 여기에 자바 스크립트에서이 작업을 수행 할 수있는 방법을 찾을 수 있습니다

public function getElementHref($element) 
{ 
    /* @var FeatureContext $this */ 
    $function = "(function(){ 
     //Javascript method to get the href. 
    })()"; 
    try { 
     return $this->featureContext->getSession()->evaluateScript($function); 
    } catch (Exception $e) { 
     throw new Exception('Element not found'); 
    } 
} 

: How to get anchor text/href on click using jQuery?

그런 다음 URL이 (파일 유형에 따라) file_get_contents와 함께 반환 사용하고 그게 다야.

+0

다른 접근 방식을 취했으나 작동해야합니다. – user2268997

관련 문제