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

Gan*_*ran 6 selenium click selenium-webdriver

我无法通过Java通过selenium webdriver click命令点击下面的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>
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以做到这一点..请告诉我.

Sub*_*ubh 5

1-对于点击文本“PAAcctActivityData”,你可以使用下面的代码:

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

2-对于点击文本“PAAcctAddrEmail ”,你可以使用下面的代码:

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

注意:-上面的 xpaths 将span elements使用精确的 innerHTML/text分别定位为'PAAcctActivityData''PAAcctAddrEmail'


Ste*_*ord 0

By.linkText("PAAcctAcctRels")不起作用,因为该链接有更多文本(即“ currently selected”),而您的 xpath 的问题是它以.//

以下应该有效(我避免使用 * 来提高性能)

By.xpath("//div[@id='primaryNavLevel2Z6_G868H4S0K881F0AAEO37LG28N0']/div[1]/a")
Run Code Online (Sandbox Code Playgroud)