我刚开始使用Watir为我的Web应用程序编写一些简单的测试。
我想要做的第一件事是在OS X上使用SafariWatir填充一个带有“email”类型的电子邮件输入元素的登录表单。
这不起作用:
browser.text_field(:id, "email").set('my@email.com')
跟踪:
/Library/Ruby/Gems/1.8/gems/safariwatir-0.4.0/lib/safariwatir/scripter.rb:661:in `execute': Unable to locate TextField, using :id and "email" (Watir::Exception::UnknownObjectException)
from /Library/Ruby/Gems/1.8/gems/safariwatir-0.4.0/lib/safariwatir/scripter.rb:303:in `focus'
from /Library/Ruby/Gems/1.8/gems/safariwatir-0.4.0/lib/safariwatir.rb:525:in `set'
from test.rb:10
我认为由于type属性值不同,元素不匹配。该文档未说明此类元素的任何规范。有什么想法吗?
谢谢!
更新:根据用户评论他们正在测试pinganalytics添加(重新格式化)HTML示例
<form action="http://pingalytics.com/" method="post" accept-charset="utf-8">
<p>
<label for="email">Email</label>
<input type="email" name="email" value="" id="email" autofocus="" />
</p>
<p>
<label for="password">Password</label>
<input type="password" name="password" value="" id="password" />
</p>
<input type="submit" name="login" value="Log in with Pingdom" class="primary" />
<p>
<a href="https://www.pingdom.com/signup/">
Sign up
</a>
, or
<a href="https://pp.pingdom.com/index.php/login" title="Reset your Pingdom password">
recover your password
</a>
.
</p>
</form>
答案 0 :(得分:1)
输入元素的'email'类型是HTML5以来的新类型。 Safariwatir是一个较早的项目,几乎早于HTML5。它没有看到很多近期的工作,在搜索潜在的“text_field”元素时,它不太可能寻找这种类型。
Watir 3.0或Watir-webdriver将是一个更安全的赌注,因为很多工作已经进入那些使他们正确支持HTML5。
此外,由于Webdriver刚刚添加了对Safari(see here for instructions))的支持,它现在是safariwatir的可行替代方案(我非常期待将来不会有进一步的工作。) Safari支持仍然是一点点DYI,因为你必须建立自己的Safari扩展,它只适用于Mac,但如果我们看到有人开始发布可以从在线图库下载的标准Safari扩展,那可能会改变