selenium+python點擊 display:none元素解決方法匯總
以下方法,我的問題是用第三種方法解決的,希望對各位同學有所幫助
<div>
<div class="login_btn" stylex="background: url("/static/images_login/btn_sign_in_normal.png") 0% 0% / 100% 100%;"></div>
<div class="login_btn" stylex="background: url("/static/images_login/btn_sign_in_pressed.png") 0% 0% / 100% 100%; display: none;"></div>
</div>
1
2
3
4
登錄按鈕是一個圖片,移動到元素上有效果,開發的代碼邏輯是通過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()
1
2
3
4
5
6
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)
1
2
3
4
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()
---------------------
作者:迷途-風景
原文:https://blog.csdn.net/teachskyLY/article/details/85029157
打開今日頭條,查看更多圖片
※如何修改request參數值並應用到springMvc中
※DDD悖論:DDD是不是銀彈?
TAG:程序員小新人學習 |