Selenium webdriver:点击不适用于xpath

时间:2017-03-09 14:16:40

标签: selenium xpath selenium-webdriver

我正试图通过xpath/css选择器让网络驱动程序单击文本“Breaking Things”无济于事。这是HTML

<div class="org-option" ng-repeat="Org in Organizations" aria-label="Select Breaking Things Organization" ng-click="Org.SelectOrg()" role="button" tabindex="0">
  <div class="data">
    <div class="data-relative">
      <!---->
      <div class="image-wrapper" ng-show="Org.HasImage" ng-if="Org.HasImage" aria-hidden="false">
        <img class="onboard-logo" ng-src="/apiimage/organizations/f1544944fac34442998a05890c400338-0" src="/apiimage/organizations/f1544944fac34442998a05890c400338-0">
      </div>
      <!---->
      <div class="image-wrapper ng-hide" ng-show="!Org.HasImage" aria-hidden="true">
        <div class="image-placeholder">
          <div class="center-icon gicon-panorama"></div>
        </div>
      </div>
      <div class="name-wrapper">
        <div>Breaking Things</div>

以下是我正在使用的驱动程序:

chromeDriver.findElement(By.xpath("//div[@class='name wrapper']//[text()='Breaking Things']")).click();

然而它永远不会点击,我错过了什么?我也试过隐式等待等没有结果。

2 个答案:

答案 0 :(得分:0)

班级名称为name-wrapper-很重要

chromeDriver.findElement(By.xpath("//div[@class='name-wrapper']//[text()='Breaking Things']")).click();

@class='name wrapper'中,您实际上是在告诉driver使用两个类,WebElementname寻找wrapper

答案 1 :(得分:0)

您应该为&#34;任何节点&#34;指定确切的节点名称div或通配符。 - 本部分中的*

//[text()='Breaking Things']

如下所示:

"//div[@class='name-wrapper']//div[text()='Breaking Things']"

"//div[@class='name-wrapper']//*[text()='Breaking Things']"