【问题标题】:Watir-webdriver: Firefox not clicking correct link but IE and Chrome working fineWatir-webdriver:Firefox 没有点击正确的链接,但 IE 和 Chrome 工作正常
【发布时间】:2011-09-26 01:14:05
【问题描述】:

问题帮助

您好,我是 Ruby 和 watir-webdriver 的新手,我已经搜索了所有内容,但找不到答案。

我有一个表格内的链接,该表格在表格顶部有一个标题,如果单击该表格,则该表格会按数字排序。在 Chrome 和 Ie 中,链接点击正常并继续,但在 firefox 中,它点击标题并重新组织表格,但不是链接,也没有给出错误消息。

我已经尝试过 xpath、正则表达式、表引用、:href、:text,(没有 id 或 name 字段),并使用 .flash 方法,我发现它查看了正确的链接,但仍然点击表格顶部。

这里是html

<thead>
    <tr>
        <th id="0" class="canclick" width="14%" align="left" datatype="string">
            Contract #
            <span id="sortIndicatorBlank">&nbsp;&nbsp;&nbsp;&nbsp;</span>
        </th>
    </tr>
</thead>
<tbody>
    <tr class="backD">
        <td width="10%" valign="top" align="left">
             <a href="/policy/clientAccountSummary.action?forwarder=ClientList&basho.menuNodeId=12801&basho.taskPanelNodeId=1261&number=015633828"> 015633828 </a>
        </td>

这是我正在使用的代码,它在 Chrome 和 Ie 中点击了正确的链接,但在 Firefox 中却没有

link = "015633828"

exp1 = Regexp.new link

@browser.link(:href, exp1).click

再次澄清:使用 .flash 方法它会找到正确的链接(闪烁我要在表格内单击的链接),但在实际的 .click 操作中,它会单击标题的“合同 #”部分而不是链接.

我认为问题可能在于表格标题是浮动标题,即当您向下滚动页面时它会随着您移动并停留在页面顶部以便始终可见。

如果您需要更多信息来澄清,请告诉我。谢谢!

【问题讨论】:

  • 你怎么知道点击的是标题,而不是链接?特别是如果 flash 闪烁链接,但他们点击点击标题。
  • 您能否仅使用您在此处提供的 HTML 重现该问题?我认为如果你告诉它点击链接,Firefox 不会点击标题。
  • 是的,我不确定这是否真的可行。我将不再只是看着浏览器在测试中运行。它到达站点,向下滚动直到链接位于页面顶部,然后表格重新组织自己,就像点击了标题一样,然后继续下一步,就像它正确点击了链接一样。
  • 另外,如果我在相同类型的表上尝试它,但其中的信息量较少,所有信息都适合屏幕,它会点击链接就好了。

标签: ruby watir firewatir browser-automation watir-webdriver


【解决方案1】:

好吧,如果你想确保点击td标签内的链接,而不是th标签内的链接,试试这个:

browser.td.link(:href => /someUser#/).click

您同时提供了 HTML 和 Watir 代码是一件好事,但在未来,请尝试提供真正的 HTML(或尽可能真实)。 someUser# 真的让我很困惑,我什至不确定我是否理解这个问题。

如果我提供的解决方案不起作用,请编辑问题以包含真实的 HTML。

【讨论】:

  • 我编辑了帖子以包含真正的 html。您提供的解决方案仍然点击了标题。
  • 我认为 firefox 正在向下滚动,直到链接位于页面顶部,但这样做会使浮动标题覆盖链接,然后单击标题。 (希望这是有道理的)有没有办法锁定滚动条?
【解决方案2】:

或者可能尝试使用 xpath:

@browser.link(:xpath,"//a[@text='someUser#']").click

【讨论】:

    【解决方案3】:

    我不确定它为什么这样做,但作为一种潜在的解决方法,您是否可以尝试按照以下方式将 href 值从链接中拉出,然后让浏览器直接转到它?

    @browser.goto(@browser.link(:text, ' 015633828 ').href)
    

    (您可能需要将网站的基本网址添加到 href 以使其正常工作,但您明白了)

    【讨论】:

    • 是的,解决方法奏效了。不介意找出是否有办法让它与浮动标题一起工作,以防我再次遇到这个问题。感谢大家的回答/帮助!
    猜你喜欢
    • 1970-01-01
    • 2015-02-03
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2012-05-02
    相关资源
    最近更新 更多