Ошибка кодового восприятия Поле формы по метке или элементу CSS не найдено - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь написать тест на страницу входа.Есть только поле ввода и кнопка отправки.

HTML / CSS на странице: HTML/CSS on page

Мой файл .yml:

actor: AcceptanceTester modules:
enabled:
    - phpBrowser:
        url: https://myloginpage.test
    - \Helper\Acceptance

1.Мой тестовый файл:

<?php class SigninCest {
public function loginSuccessfully(AcceptanceTester $I)
{
    $I->amOnPage('https://myloginpage.test');
    $I->see('Enter e-mail');
    $I->fillField('userIdentifier','myemail@email.com');
    $I->click('button[type=submit]');
    $I->see('Successful login');
}}

В этом случае я получаю эту ошибку: Поле Fail Form по метке или элементу CSS с 'userIdentifier' не найдено.

Error message

Мне известно, что

$I->fillField('userIdentifier','myemail@email.com');

также можно записать как

$ I-> fillField ("// input [@ type = 'text']", "myemail@email.com");

или

$ I-> fillField (['name' => 'userIdentifier'], 'myemail@email.com');

Поэтому после внесения изменений

2.Мой тестовый файл

<?php class SigninCest {
public function loginSuccessfully(AcceptanceTester $I)
{
    $I->amOnPage('https://myloginpage.test');
    $I->see('Enter e-mail');
    $I->fillField("//input[@type='text']", "myemail@email.com");
    $I->click('button[type=submit]');
    $I->see('Successful login');
}}

В этом случае я получаю ту же ошибку: поле формы по метке или элементу CSS с '// input [@ type =' text ']' не найдено.

Error message

В третьем случае

3.Мой тестовый файл:

 <?php class SigninCest {
public function loginSuccessfully(AcceptanceTester $I)
{
    $I->amOnPage('https://myloginpage.test');
    $I->see('Enter e-mail');
    $I->fillField(['name' => 'userIdentifier'], 'myemail@email.com');
    $I->click('button[type=submit]');
    $I->see('Successful login');
}}

Сообщение об ошибке: Элемент Fail с именем 'userIdentifier' не былнайдено.

Error message

Пожалуйста, помогите мне найти то, что мне здесь не хватает.

1 Ответ

0 голосов
/ 05 марта 2019

функция amOnPage принимает URL-адреса относительно настроек в конфигурации yml.Чтобы предоставить полный URL-адрес, вы должны использовать функцию amOnUrl.Поэтому вы можете написать тест следующим образом

public function loginSuccessfully(AcceptanceTester $I)
{
   $I->amOnPage('/');
   $I->see('Enter e-mail');
   $I->fillField("//input[@type='text']", 'myemail@email.com');
   $I->click('button[type=submit]');
   $I->see('Successful login');
}
...