【问题标题】:Unable to click button - Watir无法点击按钮 - Watir
【发布时间】:2011-08-20 00:51:41
【问题描述】:

页面上的按钮代码如下:

<a onclick="return ValidateAll();" id="btnSignin" tabindex="5" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSignin", "", true, "Login", "", false, true))'>Sign In

我的代码:ie.button(:id,"btnSignin").click 没有抛出任何错误但没有点击按钮

如何让按钮点击?

【问题讨论】:

    标签: watir browser-automation


    【解决方案1】:

    我的猜测是您需要触发 JavaScript 事件。要找出应该触发哪个事件,请阅读How to find out which JavaScript events fired?

    无需大量试验,这可能会奏效:

    browswer.link(:id => "btnSignin").fire_event "onclick"
    

    【讨论】:

    • 不幸的是,你提到的那个不起作用。这个firebug记录的事件:mousedown clientX=1129,clientY=320 focus mouseup clientX=1129,clientY=320 click clientX=1129,clientY=320 DOMActivate mouseout clientX=1129,clientY=320 一位开发者说,它实际上是一个asp 控件 LLINKBUTTOn 和 onclick 处理程序是文件保护的 void btnLogin_Click(object sender, EventArgs e) 代码后面的事件处理程序,因此在按钮单击时不涉及此处的 JS。谢谢你的回复
    • ASP 是服务器端的东西。我认为您的开发人员在客户端和服务器端之间感到困惑.. 在 Watir 参与的时候,我们都处于事物的客户端。您发布的代码非常具体地调用了 Javascript,我们都可以在那里看到。发生的第一件事是有一个事件处理程序希望执行 javascript ValidateAll() 方法..您是否可能在表单上遇到某种验证错误,是否还有其他需要正确填写的值不是得到认可?我们可能需要查看更多页面或表单。
    • 我无法通过文本找到按钮,不会返回任何内容。所以必须像这样修复@browser.buttons.each{|b| (b.fire_event "onclick"; break) if b.text=='Proceed to Checkout'}
    【解决方案2】:

    你的按钮是一个超链接,所以试试这个:ie.link(:id, "btnSignin").click

    【讨论】:

    • 你的代码没有抛出错误..但是按钮实际上没有被点击......谢谢你的回复
    【解决方案3】:

    您的代码中有错字。

    ie.button(:id,"btnSigin").click

    应该是:

    ie.button(:id,"btnSignin").click

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多