我们如何使用Selenium Web驱动程序查找元素的数量

日本动漫
  1. 导航到http://www.ksrtc.in/
  2. 搜索从Banglore到Tirupati的巴士
  3. 在结果页面中,我没有任何公共汽车。

现在我想从结果页面获取公交车号。我们如何使用Selenium Web驱动程序找到计数?

壁虎

这个问题似乎很局限,但这是怎么回事。

首先,您需要分析包含数据的表的结构,在您的情况下,包含数据的结果表的ID并不是那么大,但是包含表的div确实需要这样做。

所以自然地,您首先检索div:

WebElement tableContainer = driver.findElement(By.id("table-container"));

检查div的内容后,我们看到它有多个表,但还有其他东西,因此让我们首先解析这些表。

List<WebElement> allTables = tableContainer.findElements(By.tagName("table"));

现在我们有了所有表,我们也知道我们需要的表没有ID,而另一个表的ID为“ table-1”,因此让我们根据这些事实将其过滤掉。

WebElement resultTable = null;
for(WebElement table : allTables) {
    if("table-1".equalsIgnoreCase(table.getAttribute("id")){
        continue;
    }
    resultTable = table;
    break;
}

然后,我们可以检索结果表的行。

List<WebElement> resultRows = resultTable.findElements(By.tagName("tr"));

可是等等!结果表还包含许多实际上不是结果的无用行。因此,让我们锚定结果行中实际存在的内容,例如,类名称为“ avaiTableHeaderA”的TD元素,其中包含出发时间。

List<WebElement> trueResultRows = new ArrayList<WebElement>();
for(WebElement row : resultRows) {
    List<WebElement> rowDataElements = row.findElements(By.tagName("td"));
    for(WebElement rowData : rowDataElements) {
        if("avaiTableHeaderA".equalsIgnoreCase(rowData.getAttribute("class"))){
            trueResultRows.add(row);
            break;
        }
    }
}

现在,您已经在列表中拥有了所有实际结果行,您可以调用:

trueResultRows.size()

以获得返回的结果量,或对行​​本身执行各种操作,例如提取特定数据(如出发/到达时间等)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们如何在MongoDB Java驱动程序中配置重试次数?

我们如何找到Selenium Web驱动程序中ap标记中显示的值

我们如何确定我们使用的是Web API 1还是Web API 2?

如何使用Selenium Web驱动程序设置元素的新样式

我们如何启动守护程序?

旧元素参考:元素未使用chrome Web驱动程序附加到页面文档

使用Chrome驱动程序查找元素

Atata Selenium Web驱动程序无法在Angle App上通过ID查找控件

如何使用JavaScript使用Selenium Web驱动程序API查找后代元素?

MongoDB使用Node.js本机驱动程序在查找排序结果中间获取元素

Selenium Web驱动程序无法检查/查找“选择” html标记(组合框)

当我们使用广告位时,如何使用JavaScript查找父元素的宽度

如何仅获取表中的前3个元素?Selenium Web驱动程序

Python:Selenium驱动程序:查找“文本大小”大于“ X”的元素

我们如何从Windows iso文件编辑驱动程序?

我的特定dom元素需要xpath来标识该元素(Selenium Web驱动程序)

我们如何使用MongoDB Java驱动程序在MongoDB中追加/更新集合的子文档?

我们可以将pagefactory与Selenium Web驱动程序中的断言绑定吗?

我们可以更改视频驱动程序吗?

如何使用Selenium Web驱动程序单击导航栏

Selenium Web驱动程序-无法找到元素

使用XCUITEST驱动程序在Appium中通过xpath查找元素

Selenium Web 驱动程序 | 查找对象 | Python

Selenium Web 驱动程序:NoSuchElementError

在 selenium web 驱动程序中查找 web 元素时的多个条件

在 element selenium python chrome 驱动程序中查找元素

使用 selenium web 驱动程序抓取

如何使用 selenium Web 驱动程序单击元素(Python)

无法使用 C# 的 selenium Web 驱动程序根据其标记名称选择元素