Обработайте блок AJAX в веб-сканере или создайте ввод вручную

По материалам статьи Элвина Банка ссылка на статью Я хочу создать веб-сайт, который регистрируется на сайте, а затем отправляет форму.

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

Я изменил приведенный ниже код многими способами, чтобы попытаться заставить его работать, но в функции посещения я застрял

я получил Uncaught Ошибка: вызов функции-члена visit () в ноль

<?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

1

Решение

Вам нужно изменить свой тестовый класс следующим образом, если вы используете последнюю версию phpunit:

...
use PHPUnit\Framework\TestCase;

class MinkPetitionTest extends TestCase
{
...

Можете ли вы попробовать это сначала и увидеть результат?


РЕДАКТИРОВАТЬ № 2

Кроме того, ваш файл черт неверен. так должно быть:

trait MinkSetup
{
private $minkBaseUrl;
...

public function visit($url)
{
$this->minkSession->visit($this->minkBaseUrl . $url);
}
...

Попробуй это

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector