今日は、編集者が Python+Selenium でクリックできない要素を見つけるための解決策を共有します。編集者をフォローして見てみましょう。
selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (234.75, 22). Other element would receive the click: <img class="logo" src="/public/desktop/common/img/game_logo.png">
クリックする必要があるボタンがページ上に表示されません。ボタンが表示されるまでスクロール バーを引き下げてからクリックする必要があります。
1. ボタンが見えるように、スクロール バーの一部を引き下げてみます。
js = "window.scrollTo(100,450)"
driver.execute_script(js)
driver.find_element_by_css_selector("div.loginForm>input#loginBtn").click()
OK、クリックできます。
2. ドロップダウンで読み込まれたページではないので、1. の方法を使用するのは少し愚かです。指定された要素の位置にスクロールバーを配置してみてください。
the_loginBtn = driver.find_element_by_css_selector("div.loginForm>input#loginBtn")
ActionChains(driver).move_to_element(the_loginBtn).perform()
driver.find_element_by_css_selector("div.loginForm>input#loginBtn").click()
OK、要素の位置までスクロールします。ただし、このボタンはページの上部に表示されており、このページにはナビゲーション バーがあり、クリックするボタンは固定ナビゲーション バーによってブロックされています。まだエラーが報告されています。
3. 要素が覆われているため、クリックできません。
クリックする代わりに Enter を使用してください
driver.find_element_by_css_selector("div.loginForm>input#loginBtn").send_keys(Keys.ENTER)
selenium.webdriver.common.keys import Keys からインポートする必要があります。そうしないと機能しません。
クリックの代わりに Enter を使用した後、ページがプルダウンによって読み込まれていない場合は、スクロール バーをプルダウンせずに Enter を使用してクリックできることがわかりました。
上記の記事では、要素を見つけるために Python + Selenium を使用しており、クリックできない問題の解決策は、すべてのコンテンツを共有することです。
最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それほど価値のあるものではありませんが、使用できる場合は、直接受け取ることができます。
この情報は、[ソフトウェア テスト] の友人にとって最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。また、皆さんのお役に立てれば幸いです。