souripresident
@souripresident

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Seleniumによる、複数ある同名のチェックボックスのクリック

解決したいこと

プログラミング初心者です。
Python、seleniumであるサイトのチェックボックスをクリックしたいのですが、

<input type=“checkbox” x-model=“confirmed” autocomplete=“off”>

一つ前に何を押すかによって画面に表示されるチェックボックスの種類が変わるシステムになっているので、

driver.find_element(By.XPATH, “(//input[@type=‘checkbox’])”.click()

としても、複数の同じ名前の要素があり選択できません。checkboxの後ろに[1]と指定するなどして選択するのは可能ですが、(この場合、指定を間違えるとElementNotInteractableExceptionとでます)毎回どれか調べるのは大変なので画面に表示されているチェックボックスのみを選択する方法はありますでしょうか?(画面に実際表示されているチェックボックスは1つだけです。)

発生している問題・エラー

ElementNotInteractableException: Message: element not interactable

自分の考え

自分が考えたのは指定する[]内の数字を変数にして1ずつ上げていき、ElementNot…..が出たら数字を上げる、出なかったらpassというようなプログラムですが書き方も分かりません。

どなたかご教授下さい。

0

1Answer

.is_displayed() で要素が表示されているか確認できます。チェックボックスを列挙し、表示されている要素を見つけてクリックすればいいでしょう。

for elem in driver.find_elements(By.XPATH, "//input[@type='checkbox']"):
    if elem.is_displayed():
        elem.click()
        break
0Like

Comments

  1. @souripresident

    Questioner

    試してみたら完璧でした!有難うございます!

Your answer might help someone💌