當前位置:
首頁 > 知識 > selenium+python點擊 display:none元素解決方法匯總

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

selenium+python點擊 display:none元素解決方法匯總

打開今日頭條,查看更多圖片

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

如何修改request參數值並應用到springMvc中
DDD悖論:DDD是不是銀彈?

TAG:程序員小新人學習 |