複数の同じ要素を持つチェックボックスを場合分けしてクリックしたい。する質問をすることでしか得られない、回答やアドバイスがある。複数の同じ要素を持つチェックボックスを場合分けしてクリックしたい。8同じ要素をもつものが沢山あるのですが、"テニス(屋外)"、"軟式野球"、"ソフトボール"だけを場合分けしてクリックしたいです。そこで下記のようにプログラムを組んだところ、クリックできずに試行錯誤しております。下記は一度に同じエレメントを取得し、そのエレメントをひとつづつ取り出しながら、エレメントのテキストと一致したら、エレメントの方をクリックする。いった思想で作成しました。xpathをフルパスで指定してもクリックできなかったのですが、何かわかりましたらご指摘いただきたく、よろしくお願いします。全コードを下記に記載します。i.clickre_kf()attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheckベストアンサー+1selectorsに格納している要素は、id="label"で取得してきていますが、これはチェックボックスの横のspanタグの要素になります。この要素をクリックしてもチェックボックスはクリックされません(チェックボックスはinputタグです)。チェックボックスとなるinputタグの要素は、spanタグと親要素を同じにしていますので、find_element_by_xpath('../input')によって一度、親要素に上がってから、inputタグに降りてくることで、チェックボックスたる要素を取得できると思います。(下には、該当部分しか記載していませんが、当該ページに入ってから多少のwaitなりsleepを入れる必要があると思います。当初、全く別の回答を記載していましたが、より質問者のコードに近い方法がありましたので、そちらに大きく修正をしました。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:06ご回答ありがとうございます!まさしく、その認識です。テキストで引っかかったキーワードのチェックボックスをクリックしたいので。私の環境で修正して実施してみたのですが、うまく、クリックできませんでした。この回答が私が望むベストな回答なのですが、pythonの環境に依存するのでしょうか?私は3.7.3を利用しております。pathで記述してもクリックできなかったので、一括で取得したエレメントからひとつづつ取り出すのは何かのpath情報が足りないのかもしれません。そこが完璧であれば、相対パスでクリックできそうな予感がしますが。最初に提示のあった手法?も外出中でレスできなかったのですが、私の知らない複合要素でのクリック手法でしたので、残骸を残してもらえると助かります。ご回答ありがとうございます!まさしく、その認識です。テキストで引っかかったキーワードのチェックボックスをクリックしたいので。私の環境で修正して実施してみたのですが、うまく、クリックできませんでした。この回答が私が望むベストな回答なのですが、pythonの環境に依存するのでしょうか?私は3.7.3を利用しております。pathで記述してもクリックできなかったので、一括で取得したエレメントからひとつづつ取り出すのは何かのpath情報が足りないのかもしれません。そこが完璧であれば、相対パスでクリックできそうな予感がしますが。最初に提示のあった手法?も外出中でレスできなかったのですが、私の知らない複合要素でのクリック手法でしたので、残骸を残してもらえると助かります。xpathでクリックできないのは、コードのclickの後に()が付いていないからではないでしょうか。driver.find_element_by_xpath('/html/body/div/form[2]/table/tbody/tr/td[2]/div/table[1]/tbody/tr[2]/td/div/table[2]/tbody/tr[2]/td[1]/div/label/input').click()でもクリックできませんか?もとソースののfor文の中のi.clickにも()が付いていませんので、その辺りをご確認いただければと思います。最初に提示したクリック方法は原始的にnameでelementを指定する方法で、driver.find_element_by_name('layoutChildBody:childForm:purposeSearchItems:0:selectItemsItems:0:selectItems:0:checked').click()です。xpathでクリックできないのは、コードのclickの後に()が付いていないからではないでしょうか。もとソースののfor文の中のi.clickにも()が付いていませんので、その辺りをご確認いただければと思います。18:19見落としてました。こんな基本的なことを。click()にすると実験のクリックは全て行えました。(spanでも、inputでも、labelでも)chromeでクリックするときにspanをクリックしても反応したので同階層にいる要素はクリックできるようです。nameを全て記述する方法で、ふと思ったのですが、これは長い一つのnameなのでしょうか。cssで色々なものをひっかけるためにnameが複数ついてる感じなのでしょうか。こんなに長いnameを作っても不便だと思うのですが。いえ、私の疑問は解決しました。ご協力ありがとうございました。こんな基本的なことを。click()にすると実験のクリックは全て行えました。chromeでクリックするときにspanをクリックしても反応したので同階層にいる要素はクリックできるようです。nameを全て記述する方法で、ふと思ったのですが、これは長い一つのnameなのでしょうか。cssで色々なものをひっかけるためにnameが複数ついてる感じなのでしょうか。こんなに長いnameを作っても不便だと思うのですが。いえ、私の疑問は解決しました。ご協力ありがとうございました。seleniumでタイムアウトになった時、リトライしたい。複数の同じ要素を持つチェックボックスを場合分けしてクリックしたい。頂いたご意見への回答は行っておりません。