java - 使用 CSS 选择器在关闭 Span 后获取文本

标签 java selenium-webdriver

我有 Angular CLI 生成的以下 HTML(我对 Selenium 和 Angular 都是新手):

<ul class="projects">
  <li *ngFor="let project of projects">
    <a routerLink="/detail/{{project.id}}">
      <span class="badge">{{project.id}}</span> {{project.projectName}}
    </a>
    <button class="delete" title="delete project"
    (click)="delete(project)">x</button>
  </li>
</ul>

我正在尝试检索结束跨度后面的字符串project.projectName 表示的文本。到目前为止我已经尝试过:

String foundProjectName = driver.findElement(By.xpath("// 
[@class='projects']/li")).getText();

它返回project.id、project.projectName、“x”。另外,

String foundProjectName = driver.findElement(By.cssSelector("span.badge + 
span")).getText();

返回project.id。

最佳答案

您可以获取包含 ID 和名称的外部文本,然后删除仅包含 ID 的内部文本...从而保留名称。

String outer = driver.findElement(By.cssSelector("ul.projects a")).getText(); // project.id project.projectName
String inner = driver.findElement(By.cssSelector("span.badge")).getText(); // project.id
String projectName = outer.replace(inner, "").trim();
System.out.println(projectName);

关于java - 使用 CSS 选择器在关闭 Span 后获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49723795/

相关文章:

javascript - e2e 测试 : Headless mode test passes, 常规模式失败

selenium - 处理 Chrome 上弹出的 Windows 身份验证

java - Java 中的 iText 库与 Node 中的 Puppeteer 用于从 HTML 生成 Pdf

java - ASM 字节码操作 - istore 和 istore_<n>

java - 编辑java类文件JAD

java - Spring Boot Mongo Upsert 数组中的元素

python - 使用 Selenium Webdriver 检测是否发送了 WhatsApp 消息

java - Desktop.Action.MAIL 为 mailto : in URI 正确编码主题和正文字符串

java - 如何获取对象的类型以便可以将其与 instanceof 一起使用?

python - Selenium Python : Expected "handle" to be a string, 得到 [object Undefined] 未定义