Basé sur Alvin Bunk article link to article Je veux créer un Web-Cralwer qui se connecte dans un site Web puis soumet un formulaire. Mon problème est que sur ce site il y a un bloc Ajax qui génère après avoir cliqué et un lien vide quelques entrées que j'ai besoin de remplir donc j'ai besoin de cliquer sur ce lien vide d'une façon ou d'une autre pour insérer les entrées manuellement.Traiter le bloc AJAX dans le Web-crawler ou créer manuellement des entrées
j'ai changé le code ci-dessous dans beaucoup de façons d'essayer de le faire fonctionner, mais la fonction de visite je me suis coincé
Je reçois Uncaught Erreur: Appel à sur null
une visite de fonction membre()<?php
require 'vendor/autoload.php';
trait MinkSetup
{
private $minkBaseUrl;
private $minkSession;
/**
* @before
*/
public function setupMinkSession()
{
$this->minkBaseUrl = 'https://www.url.com';
$driver = new \Behat\Mink\Driver\Selenium2Driver('firefox');
$this->minkSession = new \Behat\Mink\Session($driver);
$this->minkSession->start();
}
public function getCurrentPage()
{
return $this->minkSession->getPage();
}
public function getCurrentPageContent()
{
return $this->getCurrentPage()->getContent();
}
public function visit($url)
{
echo $url;
$this->minkSession->visit($url);
}
public function login($user, $pass){
$this->minkSession->visit('complete url');
$page = $this->getCurrentPage();
echo $page;
$page->fillField('email', $user); // Enter username.
$page->fillField('password', $pass); // Enter password.
$page->pressButton('Login');
$content = $this->getCurrentPageContent();
$this->assertContains('logout', $content);
}
/**
* @afterClass
*/
public function logout(){
$page = $this->getCurrentPage();
$page->clickLink('logout');
}
}
use PHPUnit\Framework\TestCase;
class MinkPetitionTest extends TestCase
{
use MinkSetup;
public function testSubmitPage(){
$this->login('user', 'pw'); // Login first.
$this->visit('full url');
$page = $this->getCurrentPage(); // Get the page.
echo $page;
$page->fillField('form_ban_id', '1234');
$page->pressButton('form_find_student');
$content = $this->getCurrentPageContent(); // Get page content.
$this->assertContains('<u>No Petitions</u> exist for Some User Student ID: 1234', $content);
}
}
$client = new MinkPetitionTest(); //tried to get something to work
$client->testSubmitPage(); //same here
Je mis à jour mon article Vison avec les changements nécessaires pour les changements de PHPUnit. –
Salut le roi. Avez-vous une copie de votre code AJAX quelque part? J'ai un projet Mink prêt à vérifier dans github bientôt, cependant, l'intérêt d'utiliser Mink est à cause de Javascript ou AJAX; donc j'ai besoin de comprendre quel code vous utilisez. Vous pouvez également le publier sur pastebin et copier l'URL. –