我对水豚有一些非常奇怪的行为。它顽固地拒绝填写我的登录表单的字段。
<fieldset>
<div class="clearfix">
<label for="user_email">E-Mail Adresse</label>
<div class="input">
<input id="user_email" name="user[email]" size="30" type="email" value="">
</div>
</div>
<div class="clearfix">
<label for="user_password">Passwort</label>
<div class="input">
<input id="user_password" name="user[password]" size="30" type="password" value="">
</div>
</div>
<div class="clearfix">
<div class="input">
<input name="user[remember_me]" type="hidden" value="0">
<input id="user_remember_me" name="user[remember_me]" type="checkbox" value="1">
<label for="user_remember_me">angemeldet bleiben</label>
</div>
</div>
</fieldset>
这就是乐趣的开始:
within("#login_form"){ find("#user_email")}
=> #<Capybara::Element tag="input" path="/html/body/div[2]/div[@id='content']/div/div[1]/form[@id='login_form']/fieldset/div[1]/div/input[@id='user_email']">
within("#login_form"){ fill_in("#user_email", with: "[email protected] /cdn-cgi/l/email-protection")}
Capybara::ElementNotFound: Unable to find field "#user_email"
我不太明白如何能够找到但找不到元素。
如果能有另一双眼睛关注这一点,我们将不胜感激。
定位器用于find
and fill_in
是不同的:
-
find http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders#find-instance_method- 当第一个参数不是符号时,假定为 Capybara.default_selector - 即 css-selector 或 xpath。
-
fill_in http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Actions#fill_in-instance_method- 第一个参数是字段的名称、ID 或标签文本。
字符串“#user_email”代表一个 css 选择器。这就是为什么它适用于find
但不是fill_in
.
For fill_in
要工作,您只需传入 id 值 - 即“user_email”。
within("#login_form"){ fill_in("user_email", with: "[email protected] /cdn-cgi/l/email-protection")}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)