-1

以下代码是 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();
4

3 回答 3

2

尝试这个

driver.findElement(By.partialLinkText("Call Us")).click();
于 2013-05-06T15:06:24.287 回答
0

尝试在 Firefox 中加载您的页面,然后使用FirebugFirePath插件来调试您的 xpath。这比在此处发布您的 xpath 和部分 html 并让其他人猜测问题所在要快得多。

于 2013-05-07T11:32:14.673 回答
0

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

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

callUs.click();

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

于 2013-05-07T11:38:52.910 回答