使用Selenium WebDriver在元素中查找时结果太多

时间:2017-01-12 20:19:28

标签: java selenium xpath selenium-webdriver selenium-chromedriver

我做了以下搜索

parts.get(i).findElements(By.xpath("//li[starts-with(@class, '_lessons--row-')]"))

它返回了数十个结果,而我在开发人员工具中看到,其中只有不超过3个。

parts.get(i)会返回单WebElement

看起来它不是搜索给定元素的子元素,而是搜索整个页面。可以双斜线导致这个吗?什么是双斜杠在XPath中意味着什么?

3 个答案:

答案 0 :(得分:2)

你的xpath在这里有问题。

"//li[starts-with(@class, '_lessons--row-')]"

//从根级搜索,从节点preappend .搜索:

".//li[starts-with(@class, '_lessons--row-')]"

答案 1 :(得分:0)

使用.//尝试你的xpath,通常你应该用“。”启动xpath。停止从root中查找元素。

.//li[starts-with(@class, '_lessons--row-')]

答案 2 :(得分:0)

//匹配相关数据。从文档根开始。在您的情况下,您尝试使用

找到
//li[starts-with(@class, '_lessons--row-')]

所以它将返回你的html中的所有匹配。如果您想要找到class元素的某个特定部分,请使用起始文本_lessons--row-。您必须使xpath更具体。

例如

 //div[@id='someid']//li[starts-with(@class, '_lessons--row-')]