Python Selenium如何定位指定父div下的特定class类子div
问题原因
你编写的XPath表达式以//开头,该语法代表从整个HTML文档的根节点开始匹配元素,和你调用查找方法的父元素范围无关,因此会返回页面内所有符合class="title"条件的元素。
解决方法
将XPath开头替换为.//,其中.代表当前你已经选中的父节点(也就是你先定位到的RightColumn容器),就可以把搜索范围限制在该父节点的后代节点内。
修正后的代码如下:
mainDIV = driver.find_element_by_id("RightColumn") targetDIV = mainDIV.find_element_by_xpath('.//*[@class="title"]').text
补充说明
如果对应title元素可能同时存在多个类名,你可以使用contains语法做模糊匹配,避免类名顺序或多余类名导致匹配失败:
targetDIV = mainDIV.find_element_by_xpath('.//*[contains(@class, "title")]').text
内容的提问来源于stack exchange,提问作者Artur Podlesniy
相关产品推荐
相关产品推荐

