【问题标题】:How to handle div that is created dynamically in a table如何处理在表中动态创建的 div
【发布时间】:2015-05-07 16:17:09
【问题描述】:

我正在尝试迭代一个表以获得结果。表结构如图所示

当我打开页面时,只有一个带有 role="presentation" 的页面,我可以使用下面的 css 定位器检索数据。

driver.findElement(By.cssSelector("div[id^=dojox_grid__View_] div.dojoxGridContent div.dojoxGridRow:nth-child(1) tbody tr:nth-child(1) td:nth-child(6)")).getText();

当我手动滚动页面时,会使用 role="presentation" 动态创建另一个标签,并且有很多行 (div.dojoxGridRow)。我也想迭代这些行。

Selenium 只能进入第一级(first)并获取详细信息。我不知道如何达到第二级

【问题讨论】:

  • 问题中缺少图片..

标签: selenium xpath selenium-webdriver css-selectors


【解决方案1】:

我不确定您要访问哪个元素。
但是您可以访问所有具有 'presentation' 角色的 div(返回一个列表):

driver.findElements(By.cssSelector("div[role='presentation']"));  

如果您尝试通过角色演示访问 div 下的每一行:

driver.findElements(By.cssSelector(".dojoxGridRow"));  

如果您想获取角色为“presentation”的 div 的子行:

List<WebElement> presentations = driver.findElements(By.cssSelector("div[role='presentation']"));
for (WebElement presentation : presentations) {
    List<WebElement> rows = presentation.findElements(By.cssSelector(".dojoxGridRow"));
    // DO SOMETHING...
}

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多