如何在Selenium Webdriver 2.x中点击文本

7

我无法通过Selenium WebDriver在Java中的点击命令点击下面HTML值。

这是我的HTML... 我需要按照HTML中的PAAcctAcctRels, PAAcctActivityData等进行单击。

我尝试使用LinkText (driver.findElement(By.linkText("PAAcctAcctRels")).click();)和xpath (driver.findElement(By.xpath(".//[@id='primaryNavLevel2Z6_G868H4S0K881F0AAEO37LG28N0']/div[1]/a")).click();)。

<div id="primaryNavLevel2Z6_0G5A11K0KGF200AIUB98T20G52" class="dropdown_1columns">
  <div class="col_1">
    <a class="" href="?uri=nm:oid:Z6_0G5A11K0KGF200AIUB98T20G53">
      <strong>
        <span lang="en" dir="ltr">
          PAAcctAcctRels
          <span class="wpthemeAccess"> currently selected</span>
        </span>
      </strong>
    </a>
  </div>
  <div class="col_1">
    <a class="" href="?uri=nm:oid:Z6_0G5A11K0KGF200AIUB98T20GD4">
      <span lang="en" dir="ltr">PAAcctActivityData</span>
    </a>
  </div>
  <div class="col_1">
    <a class="" href="?uri=nm:oid:Z6_0G5A11K0KGF200AIUB98T20GT1">
      <span lang="en" dir="ltr">PAAcctAddrEmail</span>
    </a>
  </div>

有没有其他方法可以做到这一点...请让我知道。

3个回答

6

1- 要点击文本“PAAcctActivityData”,您可以使用以下代码:

driver.findElement(By.xpath("//span[.='PAAcctActivityData']")).click();

2- 要点击文本“PAAcctAddrEmail”,您可以使用以下代码:

driver.findElement(By.xpath("//span[.='PAAcctAddrEmail']")).click();

注意: 上述xpath将定位具有确切innerHTML / text的元素,分别为'PAAcctActivityData''PAAcctAddrEmail'


0

By.linkText("PAAcctAcctRels")不起作用,因为该链接有更多的文本(例如“当前选择”),您的xpath问题是以 . // 开始的

以下应该可以工作(我避免使用*来提高性能)

<code>By.xpath("//div[@id='primaryNavLevel2Z6_G868H4S0K881F0AAEO37LG28N0']/div[1]/a")
</code>

0
尝试使用//[@id='primaryNavLevel2Z6_G868H4S0K881F0AAEO37LG28N0']/div[1]/a/span作为xpath。删除初始的'.'并在末尾添加'/span'。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接