Selenium で Element hoge is not clickable at point の時はスクロールしてみると良いかも(Ruby)
 この記事は投稿されてから1年以上経っています。内容が古くなっているかもしれませんので、ご注意ください。
Warning: Undefined array key 2 in /home/yuichon/yuichon.com/public_html/wordpress/wp-content/themes/publisher-child/functions.php on line 259
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
