我有 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/