Ruby Watir webdriver:Firefox没有点击正确的链接,但IE和Chrome工作正常

Ruby Watir webdriver:Firefox没有点击正确的链接,但IE和Chrome工作正常,ruby,watir,firewatir,browser-automation,watir-webdriver,Ruby,Watir,Firewatir,Browser Automation,Watir Webdriver,问题帮助 嗨,我是Ruby和watir webdriver的新手,我已经搜索了所有地方,但找不到答案 我在一个表中有一个链接,这个表在表的顶部有一个标题,如果单击,它会对表进行数字排序。在Chrome和Ie中,链接被点击并继续,但在firefox中,它点击标题并重新组织表,但没有链接,也没有给出错误消息 我尝试了xpath、regexp、表引用、:href、:text(没有id或名称字段),并使用.flash方法查看了正确的链接,但仍然单击了表的顶部 这是html <thead>

问题帮助

嗨,我是Ruby和watir webdriver的新手,我已经搜索了所有地方,但找不到答案

我在一个表中有一个链接,这个表在表的顶部有一个标题,如果单击,它会对表进行数字排序。在Chrome和Ie中,链接被点击并继续,但在firefox中,它点击标题并重新组织表,但没有链接,也没有给出错误消息

我尝试了xpath、regexp、表引用、:href、:text(没有id或名称字段),并使用.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>
再次澄清:使用.flash方法,它会找到正确的链接(在表中闪烁我要单击的链接),但在实际的.click操作中,它会单击标题的“Contract#”部分,而不是链接

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


如果你需要更多的信息来澄清,让我知道。谢谢

如果您想确保单击了
td
标记内的链接,而不是
th
标记内的链接,请尝试以下操作:

browser.td.link(:href => /someUser#/).click
您同时提供HTML和Watir代码是一件好事,但在将来,请尝试提供真正的HTML(或尽可能真实)
someUser#
真的把我弄糊涂了,我甚至不确定自己是否理解了这个问题


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

或者尝试使用xpath:


@browser.link(:xpath,“//a[@text='someUser#']”)。单击

我不知道它为什么要这样做,但作为一种潜在的解决方法,您是否可以尝试以下方法从链接中提取href值,然后让浏览器直接转到它

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

(您可能需要将该站点的基本url添加到href中才能使其正常工作,但您知道这一点)

我编辑了这篇文章以包含真正的html。您提供的解决方案仍然单击了标题。我认为firefox会向下滚动,直到链接位于页面顶部,但这样做会使浮动标题覆盖链接,然后单击标题。(希望这是有意义的)有没有一种方法可以锁定滚动条?是的,这种方法很有效。我不介意找出是否有办法让它和浮动头一起工作,以防我再次遇到这个问题。谢谢大家的回答/帮助!您如何知道单击的是标题,而不是链接?特别是当flash闪烁链接,但他们点击了标题时。你能用这里提供的HTML重现这个问题吗?我认为如果你让Firefox点击链接,它是不可能点击标题的。是的,我不确定这是否真的可行。我不想只看浏览器在测试中运行。它进入站点,向下滚动,直到链接位于页面顶部,然后表格重新组织自身,就像点击了标题一样,然后继续下一步,就像正确点击了链接一样。此外,如果我在同一类型的表格上尝试,但是,如果在屏幕上显示的信息量较小,那么点击链接就可以了。
@browser.goto(@browser.link(:text, ' 015633828 ').href)