2014-12-26 2 views
2

Here Мне нужно щелкнуть $ ('button-see-more'), который запускает вызов ajax и загружает больше материала на странице. Я пытаюсь сSymfony Crawler для кнопки, которая вызывает ajax

$link = $crawler->selectLink('See More Products')->link(); 
$crawler = $client->click($link); 

Но это, конечно, не сработает, потому что у него нет якорной метки. Это HTML, кнопка на самом деле является элементом, я хочу, чтобы имитировать щелчок на нем

<div class="paging"> 
     <div class="mtl"> 
      <div class="button-see-more txtCenter" data-current-page="1" data-total-pages="3" data-txt-seemore="See More Products" data-txt-loading="Loading More Items for Phones"> 
       <span class="i-loader hidden"></span> 
       <span class="text">See More Products</span> 
      </div> 
     </div> 
    </div> 

Как я могу это сделать? Благодаря

ответ

5

С гусеничными вы не можете обнаружить ссылку с JavaScript, , но если у вас есть уже АЯКС ссылка, вы можете моделировать ваш запрос по этому методу

$crawler = $client->request('GET', '/foo/', array(), array(), array(
    'HTTP_X-Requested-With' => 'XMLHttpRequest', 
)); 
+0

Кроме того, если вы хотите, чтобы проверить, что запрос делает желаемое действие, вы также можете использовать Selenium с Behat/Mink или PHPUnit здесь. – kix

+1

Возможно, вам захочется взглянуть на https://github.com/alwex/php-casperjs/blob/master/Tests/CasperTest.php – smarber

+0

@abdallah Я вижу URL-адрес, запрашиваемый с консоли разработчика, но сайт использует Значки CSRF, поэтому, когда я снова использую этот URL-адрес, он просто приводит меня на домашнюю страницу – user3677331

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