【发布时间】:2021-03-27 14:27:32
【问题描述】:
我正在尝试使用 Selenium 计算网页上数据网格中的行数。每一行都由一个 div 表示,使用以下结构(针对本文进行了简化):-
<div id="resultsGrid">
<div>
<div>
<div/>
<div>
<div class="canvas">
<div data-bind="foreach: renderedRows">
<div>list item</div>
<div>list item</div>
<div>list item</div>
<div>list item</div>
</div>
</div>
</div>
</div>
</div>
</div>
通过阅读其他类似的帖子,我尝试使用以下代码和 XPath 来返回 <div data-bind="foreach: renderedRows"> 中的 div 数
var rowCount = webDriver.FindElements(By.XPath("//*[@id='usersResultsGrid']/div/div/div[2]/div/div")).Count;
每当我尝试此操作时,我只会返回 1,而不是预期的 4(在此示例中)。谁能指出我做错了什么的正确方向?
谢谢。
【问题讨论】:
-
已解决。答案是向 xpath 添加一个额外的 div,如 By.XPath("//*[@id='usersResultsGrid']/div/div/div[2]/div/div/div")。我最初的 xpath 指向 div 'data-bind' 元素,该元素的计数当然只有 1。
标签: c# selenium selenium-webdriver xpath css-selectors