java - 如何在java selenium中xpath这个 "Policy"选项卡

标签 java angularjs selenium xpath

在我的 selenium 自动化脚本中,我尝试通过其 xpath 值单击网页中的“策略”选项卡。

下面是实际的 html 代码:

....
<iframe src="/abc/api/public/v1/security/redirect">
    #document 
    <!DOCTYPE html>
    <html class="ng-scope" ng-app="CFWApp" lang="en">
     <body>
       <div class="container no-padding main-view flex-col">
          ::before
          <cfw-menu class="ng-isolate-scope">
             <div class="security-menu">
                <ul class = "flex-row">
                   <li class="tab ng-scope active" ng-repeat="tab in $ctrl.items" ng-class="{'active': $ctrl.active == $index}" ui-sref="policy.templateList" href="#!/policy/template" style="">
                      <span class="tab-icon">...</span>
                      <span class='ng-binding'>Policy</span>
                   </li>
                   <li> ... </li>
                </ul>
             </div>
           </cfw-menu>
       ...
       </div>
     </body>
   </html>

这是我的 Java 代码:

driver.findElement(By.xpath("//li[starts-with(@class = 'tab') and contains(@ui-sref = 'policy.templateList')]/span[2]")).click();      

但不知何故,这个 xpath 设置不起作用。有人可以帮我吗?非常感谢!

最佳答案

首先,您需要移至 iframe

WebElement iframe = driver.findElement(By.xpath("..."));
driver.switchTo().frame(popframe);

之后,您可以使用

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

但您需要确保该框架中不再有包含文本“Policy”的 span

关于java - 如何在java selenium中xpath这个 "Policy"选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51180110/

相关文章:

java - 如何停止 Java 转义编码标记

javascript - 如何动态更改 Angular JS 中类的内容?

javascript - Angularjs ngroute 数据不在第二页上

java - 测试类的自定义过滤器链?

python - 使用 Selenium 进行 Facebook 搜索

selenium - 从 Jenkins 运行脚本时获取 "Timeout"和 "Unable to locate element"

java - Eclipse 不会编译/运行 java 文件

java - 在消费者监听之前发送消息时,消费者未从 MQ 接收消息

java - 我怎样才能通过半径与另一个坐标点和距离以公里为单位的坐标点?

javascript - 为 Controller 运行 $http 的服务