seleniumクリックdisplay:none要素解決方法概要


selenium+pythonクリックdisplay:none要素解決方法要約
以下の方法、私の問題は第3の方法で解決して、各位の学友に対して役に立つことを望みます
<div>
	<div class="login_btn" style="background: url("/static/images_login/btn_sign_in_normal.png") 0% 0% / 100% 100%;">div>
	<div class="login_btn" style="background: url("/static/images_login/btn_sign_in_pressed.png") 0% 0% / 100% 100%; display: none;">div>
div>

ログインボタンは画像で、要素に移動すると効果的で、開発したコードロジックはhoverがdisplayのblockとnoneを変えることで効果を実現します.
display:none-要素を非表示にし、ドキュメントフローから離れます.つまり、非表示時にスペースを消費しません.
私がseleniumでクリックしたときにクリックできないことがありました
ネットで通用する方法を試してみました
1、まずマウスで要素に移動し、クリックしている場合、私には適用されません.
#    
from selenium.webdriver.common.action_chains import ActionChains

action = ActionChains(driver)
above = driver.find_element_by_xpath("//div[@class='login_btn']")
action.move_to_element(above).perform()

2、キーボードのenterでクリックします.ここではキーボードイベントKey,ENTERを用いており,この方法はENTERイベントをバインドした場合に適している.
#    
from selenium.webdriver.common.keys import Keys

driver.find_element_by_xpath("//div[2][@class ='login_btn']").send_keys(Keys.ENTER) 

3、JSコードを実行して要素を表示させる(上記の問題は本方法で解決する)独自の方法でexecute_scriptはJSを実行して要素を表示させる
#    
js="document.getElementsByClassName('login_btn')[1].style.display='block'"
driver.execute_script(js)
driver.find_element_by_xpath("//div[2][@class='login_btn']").click()