そのため、私は 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\\"]"}';
回避策 (最初の 3 行) があるので、これは私にとって重要ではありませんが、何が間違っているのか知りたいです。