2011-11-29 22 views
3

我是新来的Watir和我试图单击下面的登录按钮:更简单的方法来点击与Watir嵌套div div中的按钮?

<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")...... 

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

+0

如果存在简单的唯一标识符,则使用元素本身。否则,您可以轻松识别最低级别的“容器”(如div或跨度),然后指定该元素中的链接,例如'browser.div(:how,what).link.click' –

+0

我是否错过了一些东西,或者你是否可以不去b.button(:value =>'Submit')?我现在在watir-webdriver,也许我已经忘记了一些东西。 – kinofrost

+0

@kinofrost:你可以如果页面上有这样的按钮,但在这种情况下,它是一个链接 –

回答

2

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

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

您还可以使用class属性:

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

感谢您的快速回复!我试了两种方法,他们都返回UknownObjectException:无法定位元素。 FWIW,我使用的是火狐1.9.3和watir-webdriver 0.3.9在os x lion上使用firefox。 – carlmonday

+0

@carlmonday在你的页面上,它不是一个真正的按钮,而是一个链接。 Željko为您提供了正确的答案作为一般性声明,但具体到您的页面将是:browser.link(:text =>“登录”)或browser.link(:class =>“按钮按钮 - 红色提交“)。 –

+0

阿!这真棒...感谢一堆! – carlmonday

-1

愿这工作? browser.form(id,form_login).submit BTW:我见过一些提示说safari只支持GET模式提交。

-1

我会尝试: browser.a(:href => "#").click

假设 - “#” 是独一无二的。可能需要一个斜杠,所以它不会曲解#。当我试图引用一个只有href值为"/login"(例如browser.a(:href => "/login").click)的按钮时,我使用了类似的东西。