通过按xpath查找元素返回webelement的列表
因此,我使用的是Selenium和Python2.7的组合,如果有关系的话,我使用的浏览器是Firefox。我不熟悉XPath,但它对于获取Web元素似乎非常有用 我正在解析以下HTML文件:通过按xpath查找元素返回webelement的列表,xpath,python-2.7,selenium-webdriver,Xpath,Python 2.7,Selenium Webdriver,因此,我使用的是Selenium和Python2.7的组合,如果有关系的话,我使用的浏览器是Firefox。我不熟悉XPath,但它对于获取Web元素似乎非常有用 我正在解析以下HTML文件: <html> <head></head> <body> .. <div id="childItem"> <ul> <li class="listItem"><img
<html>
<head></head>
<body>
..
<div id="childItem">
<ul>
<li class="listItem"><img/><span>text1</span></li>
<li class="listItem"><img/><span>text2</span></li>
...
<li class="listItem"><img/><span>textN</span></li>
</ul>
</div>
</body>
</html>
我想知道如何在XPath语句中实现这一点。我已经尝试了一些说法,但最简单的是:
list = child.find_element_by_xpath('li[@class="listItem"]')
但我最终总是会出错:
selenium.common.exceptions.NoSuchElementException:Message:u'无法定位元素:{method:xpath,选择器:li[@class=\\listItem\\]}'
由于我在前三行做了一些工作,这对我来说并不重要,但我想知道我做错了什么。您缺少了//在xpath的开头:
list = child.find_element_by_xpath('.//li[@class="listItem"]')
//表示在子元素中的任何位置进行搜索。您缺少//在xpath的开头:
list = child.find_element_by_xpath('.//li[@class="listItem"]')
//表示搜索子元素中的任何位置。so。那么当前元素//是否表示它的子元素?是的。请注意,如果只执行//ie而不使用,xpath将搜索页面上的任何位置,包括那些不是child的后代的位置。这是一个巨大的帮助。谢谢所以那么当前元素//是否表示它的子元素?是的。请注意,如果只执行//ie而不使用,xpath将搜索页面上的任何位置,包括那些不是child的后代的位置。这是一个巨大的帮助。谢谢