gpt4 book ai didi

html - 如何使用 capybara 在 HTML 文件中的两种形式之一中填写字段?

转载 作者:行者123 更新时间:2023-11-27 23:41:42 26 4
gpt4 key购买 nike

我在一个 html 文件中有两种形式(注册和登录),我正在使用 Capybara 的 fill_in 语法进行测试。然而,两者都有一个用户名字段,都有一个密码字段,我得到 Ambiguous match, found 2 elements matching field :username 。我如何才能在我的规范帮助程序方法中确保我填写正确表格的字段。我想我需要 id= 每个表单,但我找不到任何有 capybara 语法的地方。

我的html

<form id="signUpForm"action='/user' method="post">
<!-- more fields -->
<input class="entryField" type="text" name="username" required>
<input class="entryField" type="password" name="password" required>
<!-- more fields -->
<input type="submit" value="Sign up">
</form>

<form id="signInForm" action="/session" method="post">
<input class="entryField" type="text" name="username" placeholder="Username">
<input class="entryField" type="password" name="password" placeholder="Password">
<input type="submit" value="Sign in">
</form>

还有我的辅助方法

def sign_in user
visit '/'
fill_in :username, with: user.username
fill_in :password, with: user.password
click_button 'Sign in'
end

最佳答案

您需要将“fill_in”指令的范围限定为特定表单。您可以使用 Capybara 的 #within 语法来执行此操作,如下所示:http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FSession%3Awithin

所以您的#sign_in 助手可能是:

def sign_in user
visit '/'
within('form#signInForm') do
fill_in :username, with: user.username
fill_in :password, with: user.password
click_button 'Sign in'
end
end

关于html - 如何使用 capybara 在 HTML 文件中的两种形式之一中填写字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31442615/

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