所以我使用 Selenium 和 Python 2.7 的组合(如果重要的话,我使用的浏览器是 Firefox)。我是 XPath 的新手,但它对于获取 WebElements 似乎非常有用。
我有以下要解析的 HTML 文件:
<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>
现在我可以使用以下代码获取所有 li 元素的列表:
root = element.find_element_by_xpath('..')
child = root.find_element_by_id('childDiv')
list = child.find_elements_by_css_selector('div.childDiv > ul > li.listItem')
我想知道如何在 XPath 语句中做到这一点。我尝试了一些说法,但最简单的是:
list = child.find_element_by_xpath('li[@class="listItem"]')
但我总是最终得到错误:
selenium.common.exceptions.NoSuchElementException: Message: u'Unable to locate element: {"method":"xpath","selector":"li[@class=\\"listItem\\"]"}';
因为我确实有一个解决方法(前三行),所以这对我来说并不重要,但我想知道我做错了什么。