首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要查找具有内部文本的元素元素

需要查找具有内部文本的元素元素
EN

Stack Overflow用户
提问于 2018-03-11 06:23:09
回答 2查看 51关注 0票数 0

我有一个包含多行记录的表。我有ID "171485824993“作为我的数据来看,并需要获得文本值”新,泽西“,并点击文本作为其链接。将有多个与此类似的记录,并且需要循环,直到我找到具有我正在查找的ID的正确行。

代码语言:javascript
复制
<div layout="row" class="table2Row ng-scope layout-row" ng-repeat="state in fullList">
  <div class="flex-inline top-bottom-margin-15 flex" flex="">
    <a ng-click="$ctrl.viewDetails(st)" flex="30" aria-label="St" tabindex="0" class="ng-binding flex-30">New, York</a>
    <p class="small ng-binding flex-10" flex="10">NY</p>
    <p class="small ng-binding flex-10" flex="10">M</p>
    <p class="small ng-binding flex-15" flex="15">01/28/1991</p>
    <p class="small ng-binding flex" flex="">171485421586</p>
    <p class="small ng-binding flex" flex="">M4398-1</p>
  </div>

<div layout="row" class="table2Row ng-scope layout-row" ng-repeat="state in fullList">
  <div class="flex-inline top-bottom-margin-15 flex" flex="">
    <a ng-click="$ctrl.viewDetails(st)" flex="30" aria-label="St" tabindex="0" class="ng-binding flex-30">New, Jersey</a>
    <p class="small ng-binding flex-10" flex="10">NJ</p>
    <p class="small ng-binding flex-10" flex="10">M</p>
    <p class="small ng-binding flex-15" flex="15">03/28/1996</p>
    <p class="small ng-binding flex" flex="">171485824993</p>
    <p class="small ng-binding flex" flex="">M4398-1</p>
  </div>

我尝试了以下代码,但作为无效选择器出现错误:指定了无效或非法的选择器

代码语言:javascript
复制
List <WebElement> studentCount= driver.findElements(By.cssSelector(".table2Row"));
for (int i=0; i<studentCount.size();i++) {
    String studentName= driver.findElement(By.cssSelector(".table2Row:nth-of-type(i) p:nth-of-type(4)")).getText();
    if (studentName.equals("171485824993"))
        System.out.println (studentName);
        break;          
}
EN

回答 2

Stack Overflow用户

发布于 2018-03-11 14:12:14

为什么不直接使用xpath

代码语言:javascript
复制
driver.findElement(By.xpath("//*[text()='171485824993']/preceding-sibling::a"));

这将为您提供具有ID的元素的前一个具有<a>标记的同级标记。

票数 1
EN

Stack Overflow用户

发布于 2018-03-11 12:03:48

您需要像连接任何其他字符串一样连接i

代码语言:javascript
复制
String studentName= driver.findElement(By.cssSelector(".table2Row:nth-of-type(" + i + ") p:nth-of-type(4)")).getText();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49214613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档