質問: やりたいこと ------ * seleniumで画像の要素をクリックしたい ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/b59658addb377165ad853dfbbf0c0155.png) 問題 -- * クリックしたい要素のxpathは「//*[@id="ember3224"]/label[7]」と取得できたが、idの「3224」の部分は画面をロードするたびに変更される * クリックしたい要素が他の要素と同じクラスを持っているため、クラスで指定することはできない * クリックしたい要素が唯一ユニークなのは「is unknown」の文字だけ 試したこと ----- * 「is unknown」の文字をクリックするために以下のコードを実行するとエラーが出る ``` driver.find_element_by_xpath(".//span[contains(text(), 'is unknown')]").click() ``` ``` selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":".//span[contains(text(), 'is unknown')]"} ``` 要素が見つからないとのことです。。 お知恵をお貸しください。よろしくお願いします。
回答: 方向性はいいと思います。 ただ、Selenium Driverのメソッドで `contains(text(), 'is unknown')` といったXpathを指定してもChromeほど賢くないのでエラーとなってしまいますね。 別途HTMLを解析するライブラリを使って要素の情報を取得してクリックさせればいいと思います。 RubyであればNokogiriで簡単に出来るのですが、PythonだとBeautiful Soupで出来たはずです。