如何使用WebDriver单击Webtable中的链接

时间:2013-05-06 09:35:11

标签: webdriver selenium-webdriver

以下代码是

的HTML
<table cellspacing="0" cellpadding="0" border="0" width="192">
  <tbody>
    <tr>
    </tr>
    <tr>
      <td class="rhs-customer" valign="top">
        <p>
        </p>
        <p>
          <img hspace="6" align="left" alt="" src="../common/images/icon-contactus.gif">
          <a onclick="window.open('../applications/homeline.asp','HomeLineNumber','height=500, width=700,scrollbars=yes,resizable=1,top=0,left=0')" href="#">&nbsp;**Call Us**</a>
        </p>
        <p>
        </p>
      </td>
    </tr>
  </tbody>
</table>

我想点击“致电我们”链接,如果您能提供帮助,我是WebDriver的新手。

我使用下面的xpath尝试点击链接,但是我被抛出NoSuchElementException

driver.findElement(By.xpath("html/body/table/tbody/tr[2]/td/table/tbody/tr/td[3]/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr[2]/td/p[2]/a")).click();

3 个答案:

答案 0 :(得分:2)

试试这个

driver.findElement(By.partialLinkText("Call Us")).click();

答案 1 :(得分:0)

尝试在Firefox中加载您的页面,然后使用FirebugFirePath插件来调试您的xpath。它比在这里发布你的xpath和你的部分html要快得多,让其他人猜错了。

答案 2 :(得分:0)

如果您拥有class="rhs-customer"这是您网页中唯一的位置,您可以随时使用给定元素进行隔离和搜索。如果这种情况属实,则下面的代码应该像魅力一样:

WebElement myTd = driver.findElement(By.className("rhs-customer"));
WebElement callUs = myTd.findElement(By.tagName("a"));

callUs.click();

作为旁注,如果可能的话,总是建议在HTML上使用一些独特的定位器。