簡體   English   中英

硒-如何使用cssSelector查找多個元素

[英]Selenium - How to find multiple elements using cssSelector

我想驗證標簽“名稱”在我們的頁面上顯示#次,並且想知道如何使用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'");

我的來源圖片

你不能。 唯一的方法是使用Xpath。 使用text()='your text'contains(text(),'your text')作為查找元素的條件。

private By lblNameField = By.xpath("//*[@class='entity-label ng-binding' and text()='Name']");

從技術上講,您可以使用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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM