【问题标题】:Cross browser click in watir-webdriver跨浏览器点击 watir-webdriver
【发布时间】:2012-11-23 02:57:27
【问题描述】:

我正在使用 Watir-Webdriver 进行自动化测试。但是跨浏览器似乎不稳定。 例如,它通常在 Firefox 和 Chrome 中运行良好,但在 IE 中不稳定。 当我获得一个元素并单击时,在 ie7、8、9 中它会以不同的方式响应。 可以单击该按钮,但没有任何反应。 我尝试了很多方法,例如:click、click()、send_key、fire_event,但我仍然没有找到跨浏览器点击的最终解决方案。 比如在ie9中,在使用click的时候,有的时候完美,有的时候不完美,不知道是什么原因。

我们是否有解决方案,例如允许我们在多个浏览器中(尤其是在 IE7、8、9 中)中单击一个元素成功的功能?

【问题讨论】:

  • 请提供该页面的链接,或类似的链接,或相关的 HTML。另外,请提供相关的Ruby代码。

标签: watir watir-webdriver


【解决方案1】:

您可能还遇到了我不久前发布的这个问题:Watir Webdriver in IE8, click link, event seems to keep firing for ever

第一次在新会话中使用 IE 中的点击是否有效,然后在该会话中不再有效?这表明我遇到了同样的问题。

【讨论】:

    【解决方案2】:

    尝试使用 .when_present 装饰器,以确保您不会尝试单击未处于可被单击状态的内容。有时对于较慢的浏览器(如旧版 IE)很有用。

    browser.link(:id => "foo").when_present.click
    

    【讨论】:

      【解决方案3】:

      我认为 IE 使用与其他浏览器不同的“点击”方法。因此,除非它有不间断的焦点,否则它是不可预测的。另一种方法可能是专门为 IE 使用 Watir Classic,因为它使用 COM 对象而不是 Javascript。

      【讨论】:

      • 可能是这样,也可能只是浏览器速度。 IE9 中的 Javascript 引擎,当前的 Chrome 和 Firefox 速度非常快。旧版本的 Firefox(真的很旧)或 IE8 及以下版本非常慢。如果页面有很多 JS 渲染的内容,或者 Ajax'y 类型的东西,可能是脚本正在尝试继续,而页面仍在执行客户端 JS 内容(请注意,浏览器报告它“已完成加载”当它在基本页面中有所有文件时,在这种情况下仍然可以发生 javascript 的东西..
      猜你喜欢
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多