gpt4 book ai didi

java - Selenium - 如何使用 cssSelector 查找多个元素

转载 作者:行者123 更新时间:2023-11-30 06:35:37 24 4
gpt4 key购买 nike

我想验证标签“Name”在我们的页面上显示 # 次,并且想知道如何使用 cssSelector 来查找该元素?

这是元素:

<div class="entity-label ng-binding" ng-bind-html="entity.Label">Name</div>

这是我目前拥有的,但不确定如何向其中添加“名称”。

private By lblNameField = By.cssSelector("[class='entity-label ng-binding'][ng-bind-html='entity.Label'");

Image of my source

最佳答案

从技术上讲,您可以使用 CSS 选择器进行搜索,但仅靠定位器无法找到您想要的元素。您必须循环遍历所有元素并使用 .getText() 查找包含的文本。下面是一个例子

List<WebElement> labels = driver.findElements(By.cssSelector("div.entity-label.ng-binding[ng-bind-html='entity.Label']"));
int count = 0;
for (WebElement label : labels)
{
if (label.getText().equals("Name"))
{
count++;
}
}
System.out.println(count);

更有效的方法(也是定位包含文本的元素的唯一方法)是使用 XPath。 XPath 将包含您正在查找的文本,这样您只需使用定位器就可以找到所有所需的元素。下面的代码将返回您正在查找的元素的计数。

driver.findElements(By.xpath("//div[.='Name'][ng-bind-html='entity.Label']")).size();

关于java - Selenium - 如何使用 cssSelector 查找多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45249551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com