我正尝试在登录页面上编写测试。只有输入字段和提交按钮。
我的.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元素的“失败表单”字段。
我知道
$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元素的表单字段。
第三种情况
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'的失败元素。
请帮助我在这里找到我所想念的东西。
答案 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');
}