python+seleniumシミュレーションマウスクリック問題記録


クリックイベントをシミュレートするとき、エラーに遭遇し、新しい知識点を記録します.エラーメッセージ:Element is not clickable at point,Other element would receive the click:xxx
この問題の原因は、クリックイベントが他のレイヤのコンポーネントに吸収され、クリックしたい位置に位置決めできなかったためです.この問題は、次のいくつかのシーンによく発生します.
  • iframeフレームジャンプのbtn
  • をクリック
  • tableテーブルのbtn
  • をクリック
  • の2つのbtn構造は完全に同じで、クリック位置が位置決めされていない場合
  • 元のコード:
    driver.find_element_by_xpath('//div[@class="modal-footer"][1]/button').click()
    

    実行時エラー
    unknown error: Element <button data-bb-handler="ok" type="button" class="btn btn-primary">...</button> is not clickable at point (1078, 114). Other element would receive the click: <button data-bb-handler="ok" type="button" class="btn btn-primary">...</button>
    

    字面の意味から、私たちが位置しているbutton要素は、この位置ではクリックできません.もう一つのbutton要素が今回のクリックイベントを吸収している可能性があります.このときは直接クリックするのではなく、正確に位置決めした後、scriptコード***「arguments[0].click();」***を実行します.をクリックします.
    コードは次のとおりです.
    btn = driver.find_element_by_xpath('//div[@class="modal-footer"][1]/button')
    driver.execute_script("arguments[0].click();", btn)
    

    最後にクリックイベントに成功しました!小流を積まなければ,川を成すことはできない.積み重ねずに千里に至るまで.(●’◡’●)