常に要素を見つけるために、絶対と相対のxpathの混合物を使用することをお勧めします。
最初に見つけなければならないのは、一意の識別子を持つ親です。あなたが言及した要素には静的IDを持つ2つの親アイテムがあります。 1つはルートdiv
で、もう1つはul
です。
あなたのパスに沿って、テキストを使用して要素を見つけることができます。以下のいずれかが動作します。
driver.find_element_by_xpath("//div[@id='tabs']//a[text()[contains(.,'Pay Monthly')]]").click()
driver.find_element_by_xpath("//ul[@id='remove']//a[text()[contains(.,'Pay Monthly')]]").click()
ただし、項目が静的要素で、ここで目標を検討している場合は、次の方法を提案します。複数の要素を返すときにxpathのインデックスを作成します。
myElement = driver.find_element_by_xpath("//div[@id='tabs']//a[@href='#'][1]")
myElement.click()
テキストをキャプチャできます。 wait
を入力して、テキストが確実に変更されるようにすることができます。
myText = myElement.text
これが機能しない場合はお知らせください。
Beautifulsoupはこの種の作業にはあまり適していません。 htmlを解析するだけで情報を抽出することができますが、実際のWebページと実際にやりとりすることとはほとんど関係ありません。 –
「何かをしている」という意味ですか?例外が発生するか、ボタンをクリックしていないだけですか?テキストは ''毎月支払う ''の代わりに同じボタンに表示されるはずですか? – Andersson