Selenium で Element hoge is not clickable at point の時はスクロールしてみると良いかも(Ruby)
この記事は投稿されてから1年以上経っています。内容が古くなっているかもしれませんので、ご注意ください。
Selenium WebDriver でラジオボタンをクリック(選択)しようとしているのに、何故だか全然クリックできない。
# ラジオボタンを下記でクリック
driver.find_element(:xpath, '//*[@id="form"]/tbody/tr[44]/td/p[2]/label[2]/span').click
とするとエラーがでる。
Element is not clickable at point (329.4166793823242,793.3333129882812) because another element <html class=""> obscures it (Selenium::WebDriver::Error::ElementClickInterceptedError)
「クリックできません、何故なら何かによって覆い隠されているから」ということのよう。
最初はラジオボタンに対して .click
が使えないのかと考え .send_key(Key.SPACE)
とかしてみた(スペースちゃんと送れているかわからないけど)けどラジオボタンは選択できず。
クリックする要素はブラウザに表示させる
結局は、 .click
が走る時にブラウザウィンドウ上にラジオボタンが表示されていないことが問題だったらしい。ウインドウによって覆い隠されてるよ、ということなのね。
クリックしたいラジオボタンより、下の方にある要素まで適当にスクロールさせることでクリックされるようになりました。
driver.find_element(:class_name, 'fuga').location_once_scrolled_into_view
フォームの入力とかは自動でスクロール追従してくれるみたいなんですけどね。
※ selenium-webdriver 3.14.0