0

我刚开始使用 Watir 为我的 Web 应用程序编写一些简单的测试。

我想做的第一件事是在 OS X 上使用 SafariWatir 使用“电子邮件”类型的电子邮件输入元素填充登录表单。

这不起作用:

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

我假设元素不匹配,因为类型属性值不同。该文档没有说明此类元素的任何规范。有任何想法吗?

谢谢!

更新:根据用户正在测试 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>
4

1 回答 1

1

输入元素的“电子邮件”类型是 HTML5 中的新内容。Safariwatir 是一个早于 HTML5 的老项目。它没有看到很多最近的工作,在搜索潜在的“text_field”元素时,它不太可能寻找这种类型。

Watir 3.0 或 Watir-webdriver 将是一个更安全的选择,因为已经进行了大量工作以使它们能够正确支持 HTML5。

此外,由于 Webdriver 最近刚刚添加了对 Safari 的支持(有关说明,请参阅此处),它现在是 safariwatir 的可行替代品(我非常希望不会有进一步的工作。) Safari 支持仍然是一点点 DYI 就像你一样必须构建自己的 safari 扩展程序,它只能在 Mac 上运行,但如果我们看到有人开始发布可以从在线图库下载的标准 safari 扩展程序,情况可能会改变

于 2012-05-02T18:16:40.357 回答