如何使用xpath或CSS选择器识别虚拟表中的第一条记录

问题描述 投票:0回答:1

我有以下HTML代码,我需要在其中检测页面上显示的记录数并选择正确的记录。但是,使用Firefox检查元素时会发现记录是具有相同的类名,而WebElement的ID是动态创建的。

如果使用它来按标记名查找,它将返回100多个Web元素。

[我想知道如何使用XPath或CSS选择器来识别显示在页面上的第一条记录。

enter image description here

    WebElement menuList = driver.findElement(By.cssSelector(".scrollable-content"));
    List<WebElement> search_li = menuList.findElements(By.tagName("div"));
    WebElement searchresult = driver.findElement(By.ByXPath.className("grid-view-drop-area ng-star-inserted"));
    searchresult.click();
java selenium-webdriver xpath css-selectors
1个回答
0
投票

扩展的<div>标签的HTML的更多信息,将有助于我们构造一个规范的答案。但是,对于页面上显示的记录数,您必须为visibilityOfAllElementsLocatedBy()引入WebDriverWait,并且可以使用以下任何一个Locator Strategies

  • cssSelector

    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("div.grid-view-drop-area.ng-star-inserted[fid^='grid-row']"))).size());
    
  • xpath

    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//div[@class='grid-view-drop-area ng-star-inserted' and starts-with(@id, 'grid-row')]"))).size());
    
© www.soinside.com 2019 - 2024. All rights reserved.