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

时间:2011-06-30 14:25:06

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

问题帮助

嗨,我是Ruby和watir-webdriver的新手,我已经搜遍过,无法找到答案。

我有一个位于表格内的链接,该表格在表格顶部有一个标题,如果点击则会以数字方式对表格进行排序。在Chrome和Ie中,链接被点击正常并继续,但在Firefox中它单击标题并重新组织表,但不是链接,并且没有给出错误消息。

我尝试过xpath,regexp,表引用,: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操作中,它点击了标题的“Contract#”部分而不是链接。

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

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

3 个答案:

答案 0 :(得分:3)

我不确定为什么会这样做,但是作为一种潜在的解决方法,你可能会尝试沿着以下几行将href值拉出链接,然后让浏览器直接转到它?

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

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

答案 1 :(得分:1)

或者可能尝试使用xpath:

@ browser.link。(:XPath中, “//一个[@Text = ' SomeUser是否#']”)点击

答案 2 :(得分:0)

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

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

提供HTML和Watir代码是件好事,但将来尝试提供真实的HTML(或尽可能真实)。 someUser#让我很困惑,我甚至不确定我是否理解这个问题。

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