【发布时间】:2020-06-26 00:16:36
【问题描述】:
所以我有这段代码(我希望这可以缩小范围):
List<WebElement> resultList = driver.findElements(By.className("result"));
for (WebElement item : resultList) {
String rating = item.findElement(By.xpath("//div[starts-with(@class, 'result-rating')]")).getAttribute("class");
(...)
让我分解一下我认为我在做什么:
首先,我将我感兴趣的节点分成一个 webElements 列表。 然后我逐项循环,并尝试获取该项目下的 div 元素,其类以 result-rating 开头。
问题是我总是得到相同的评分值,这是第一个。如果我打印出我得到的值,它们是正确的。但是当我尝试进一步过滤它(第 3 行)时,该特定值总是相同。
但是,如果我的列表中的每个项目都包含不同的节点,该怎么办?怎么可能都有所有的页面代码只返回第一个?
最重要的是......如何解决我正在做的事情以获得每条记录的相应评级?
提前谢谢你!
【问题讨论】:
-
你试过调试吗?
-
嗯,第三行的findElement是一个单独的语句,不知道能不能看出来后面是怎么回事。但是,是的,如果我打印出 for 中的元素,它们就是我需要的所有节点。只有评级始终相同。