找不到按标签或CSS元素的编解码错误表单字段

时间:2019-02-26 11:33:27

标签: php automated-tests phpstorm codeception

我正尝试在登录页面上编写测试。只有输入字段和提交按钮。

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

在这种情况下,我遇到此错误:找不到标签或带有'userIdentifier'的CSS元素的“失败表单”字段。

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

在这种情况下,我会遇到相同的错误:找不到带有'// input [@ type ='text']'的Label或CSS元素的表单字段。

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

错误消息:找不到名称为'userIdentifier'的失败元素。

Error message

请帮助我在这里找到我所想念的东西。

1 个答案:

答案 0 :(得分:0)

函数amOnPage接收与yml配置中的设置相关的URL。要提供完整的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');
}