Seleniumとxpathsを使用していくつかのデータを取得しようとしています。
次のxpathは正常に機能します。
print sel.get_attribute("xpath=(//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a/@href")
一致する4つのURLを返します。ここまでは順調ですね。
問題は、各URLを個別にターゲットにするxpathを作成したいということです。
Firefox xpathチェッカープラグインを使用して、次のコードが必要なものを正確に実行することを確認できました。
((//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a/@href)[1]
しかし、Firefox xpathチェッカーで作業しているにもかかわらず、Seleniumでこれを機能させることができないようです。
私が実行しようとするときはいつでも:
print sel.get_attribute("xpath=((//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a/@href)[1]")
次のエラーが発生します。
Exception: ERROR: Invalid xpath [2]: ((//*[@id='course_list']/*[@class='series'])[4]//*[@class='series_links']//a
ここで何が起こっているのかわからない。私は単純な間違いを犯していますか、それともSelenium xpathはFFxpathチェッカーのようにネストされたブラケットをサポートしていませんか?
私はこれに何時間も取り組んできて、それを機能させることができないように見えるので、どんな考えでも最もありがたいです:(