gpt4 book ai didi

php - 无法让 Codeception 填写表单字段

转载 作者:可可西里 更新时间:2023-11-01 13:30:36 26 4
gpt4 key购买 nike

我正在尝试进行一个简单的验收测试以用于学习目的。这是一个简单的身份验证场景:用户输入 /admin,如果没有登录,他将被重定向到 /login 以填写表单。

当我运行测试时出现此错误:

1) Couldn't login with a password protected area in LoginCest.loginUserWithProperCredentials
Guy couldn't fill field "username","rafael": Field matching id|name|label|value or css or xpath selector does not exist

Scenario Steps:
5. I fill field "username","rafael" <==== RED
4. I see current url equals "/login"
3. I am on page "/admin"
2. So that I Perform administrative tasks
1. As a Site Owner

现在这是我的观点:

//create.blade.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Login</title>
</head>
<body>
<h1>Login</h1>
{{ Form::open() }}
<div>
{{ Form::Label('username', 'Username') }}
{{ Form::Text('username', '') }}
</div>
<div>
{{ Form::label('password', 'Password') }}
{{ Form::password('password', '') }}
</div>
<div>
{{ Form::submit('Login') }}
</div>
{{ Form::close() }}
</body>
</html>

这是测试:

class LoginCest
{

public function loginUserWithProperCredentials(WebGuy $I){
$I->am("Site Owner");
$I->wantTo("Login with a password protected area");
$I->lookForwardTo("Perform administrative tasks");

$I->amOnPage('/admin');
$I->seeCurrentUrlEquals('/login');

$I->fillField('username', 'rafael');
$I->fillField("password", "123456");
$I->click("Login");

$I->seeCurrentUrlEquals("/admin");
$I->see("Admin area", "h1");
}

}

如有任何帮助,我们将不胜感激。

最佳答案

你可以从html中复制用户名的XPath,然后写:

$I->fillField('//*[@id="addPosDialog"]/div/button','Username');

'//*[@id="addPosDialog"]/div/button' - 将您的 xpath 粘贴到那里。您可以使用 xpath、name、id 和其他定位器。当我遇到 fillField 问题时,我通常会这样做。

在这种情况下,HTML 代码比 View 代码更重要。如果我的建议不能解决问题,需要查看 HTML 代码。

关于php - 无法让 Codeception 填写表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18833644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com