2016-09-13 9 views
0

Я использую безгласный браузер (phantomjs) в сочетании с Mink для выполнения некоторых функциональных тестов на моем сайте.
Теперь в этой настройке файлы нельзя загружать регулярно, например: нажав ссылку. Поэтому мне нужно извлечь url из ссылки или кнопку и загрузить файл вручную.
Есть ли способ имитировать ссылку/кнопку в норке?

Как я только что сказал, иногда нет никакой связи () для загрузки, но кнопку в форме (например: Ввод данных для отчета в форме и получение файла отчета о представлении) ,

Так что мне нужно сделать, это имитировать нажав на ссылку или кнопку и извлечь данные для запроса, что бы посланных, и использовать эти данные для загрузки файла вручную.

Есть ли способ сделать это?
Примечание: Я использую guzzle, чтобы загрузить файл.

+0

У вас должен быть метод поиска из Mink, который вы можете использовать для поиска элемента, этот метод вернет объект, и оттуда вы можете щелкнуть или вы можете получить атрибут href, который должен предоставить вам необходимый вам URL. Для клика вы должны использовать find css и щелкнуть. – lauda

+0

Я знаю, поэтому заметил, что это не обязательно ссылка. Запрос, отправленный для файла, может быть даже «POST». – user2268997

ответ

1

Mmmm ... Я не знаю, решили ли вы это и только в качестве альтернативы типичным методам норки. Поскольку Phantomjs - это механизм браузера на основе javascript, вы пытались использовать javascript?

Вы могли бы попробовать что-то вроде этого:

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'); 
    } 
} 

Вы можете найти способ сделать это в JavaScript здесь: How to get anchor text/href on click using jQuery?

Затем используйте URL вернулся с file_get_contents (в зависимости от типа файла) и это оно.

+0

Я сделал еще один подход, однако это должно сработать. – user2268997

 Смежные вопросы

  • Нет связанных вопросов^_^