java - 需要找到有内部文本的element元素

标签 java selenium selenium-webdriver css-selectors

我有一个包含行记录的表。我有 ID“171485824993”作为我要查看的数据,需要获取文本值“New, Jersey”并单击该文本作为其链接。 将有超过 1 条与此类似的记录,需要循环,直到找到具有我要查找的 ID 的正确行。

<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>

我尝试了以下代码,但收到无效选择器错误:指定了无效或非法选择器

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;          
}

最佳答案

为什么不直接使用 xpath

driver.findElement(By.xpath("//*[text()='171485824993']/preceding-sibling::a"));

这将为您提供前一个兄弟 <a>使用 ID 标记到元素。

关于java - 需要找到有内部文本的element元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49214613/

相关文章:

python - 错误 : GDK_BACKEND does not match available displays; Running Selenium using Crontab

java - 不可变链表的拆分器

java - intellij 声明中的 Java 字符串错误

java - 如何制作只能通过接口(interface)访问的类?

python - 获取与 DOM 元素关联的事件列表

java - 为什么 WebElement 和 List<WebElement> 通过 xpath 的处理方式不同,并且 List 始终为 null?

java - 使用testng中的DataProvider从文件中读取数据

java - 从另一个类调用一个类

java - 获取空或 null SecurityContextHolder.getContext().getAuthentication()

java - 拖放到 `ListView`