【问题标题】:Easier way to click button in nested divs with Watir?使用 Watir 更轻松地单击嵌套 div 中的按钮?
【发布时间】:2023-03-09 07:14:02
【问题描述】:

我是 Watir 的新手,我正在尝试单击以下登录按钮:

<div class="container login" style="display: table;">
    <div class="left">
    <div class="right">
        <div class="joinbox">
            <form id="form_login" class="hidden-submit" method="post">
                <input type="submit" value="Submit">
                <div class="header">
                    <div class="left">
                    <div class="mid">
                    <div class="right">
                       <a class="button button-red submit" href="#">Log In</a>
                    ...

到目前为止,我可以通过遍历每个嵌套的 div 来访问此按钮:

b.div(:class, "container login").div(:class, "right").div(:class, "joinbox")......

等等。这真的是访问此按钮的最佳方式吗?我想我错过了一些东西。任何帮助表示赞赏!

【问题讨论】:

  • 如果有一个简单的唯一标识符,则使用元素本身。否则使用最低级别的“容器”,例如 div 或 span,您可以轻松识别然后指定该元素内的链接,例如browser.div(:how, what).link.click
  • 我是否也遗漏了什么,或者你不能直接去 b.button(:value=>'Submit') 吗?我现在正在使用 watir-webdriver,也许我忘记了什么。
  • @kinofrost:如果页面上有这样的按钮,你可以,但在这种情况下它是一个链接
  • @ŽeljkoFilipin 我发现了我的错误,我看到他现在打开的按钮(链接),我在树上看得太远了。不理我! :)

标签: ruby watir watir-webdriver


【解决方案1】:

如果页面上只有一个带有文本Log In 的链接(看起来像一个按钮),试试这个:

browser.a(:text => "Log In").click

你也可以使用class属性:

browser.a(:class => "button button-red submit").click

【讨论】:

  • 感谢您的快速回复!我尝试了这两种方法,它们都返回了 UknownObjectException:无法定位元素。 FWIW,我在 os x lion 和 firefox 上使用 ruby​​ 1.9.3 和 watir-webdriver 0.3.9。
  • @carlmonday 在你的页面上它不是一个真正的按钮,而是一个链接。 Željko 作为一般性陈述给了您正确的答案,但具体到您的页面,它将是:browser.link(:text => "Log In") 或 browser.link(:class=> "button button-red submit ")。
  • 真的,现在我仔细看了一下,它真的是一个链接,而不是一个按钮。我将在我的答案中修复代码。谢谢@adamreed。 :)
  • Button 可用于处理按钮元素和呈现按钮外观的“输入”元素子集。有时链接可能看起来像按钮,特别是如果通过 CSS 提供图像(通常是由元素类控制的“背景图像”),但不管它们在视觉上看起来如何,您必须使用 .link 或 .a 来使用链接
【解决方案2】:

这可行吗? browser.form(id,form_login).submit BTW:我看到一些提示说 safari 只支持 GET 模式提交。

【讨论】:

    【解决方案3】:

    我会尝试: browser.a(:href =&gt; "#").click

    假设 - “#”是唯一的。可能需要一个斜线,这样它就不会误解 #。当我试图引用一个 href 值为 "/login" 的按钮时,我使用了类似的东西,例如,browser.a(:href =&gt; "/login").click

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多