前面介紹了如何判斷元素是否可見,了解到了隱藏元素的屬性值,以及如何判斷隱藏元素,那么今天安靜介紹下如何操作隱藏元素。
隱藏元素
安靜先帶大家回顧下隱藏元素是什么,隱藏元素是通過屬性值 hidden="hidden" 進行隱藏,如果前端代碼中出現這個,就代表該元素已經被隱藏了,大家也知道,如果元素隱藏了,是沒有辦法進行操作的,所謂的操作就是輸入,點擊,以及清空這些基本元素操作。如果通過selenium中的點擊進行操作元素的話,會報錯誤,沒有找到元素信息,前面也介紹了,隱藏的元素只能定位到,但是沒有辦法進行操作。具體的詳情見selenium---判斷元素是否可見。今天安靜介紹一個小小的方法來幫助我們進行操作這些元素
操作隱藏元素
大家也都知道selenium操作方法是通過模擬人的操作方法進行的,那么元素都看不到了,就沒有所謂的操作不操作了,如果真的想要操作,我們可以使用JS語法進行操作(selenium---通過JS語法操作頁面元素),因為JS語法屬於直接對前端的代碼進行操作,代碼是在的,隱藏元素主要是對於前端頁面來說是不可見的。
點擊操作
這里安靜那上次的代碼進行添加了隱藏的按鈕,點擊這個隱藏按鈕會出現一個彈出框。通過下面的代碼可以看出,用戶名和按鈕是通過hidden屬性進行隱藏的。
<html> <body> <center> 用戶名:<br> <input hidden="hidden" type="text" name="username" id="anjing"> <br> 密碼:<br> <input type="text" name="pwd" id="test"> <br><br> <input type="submit" value="登錄"> </form> <p>點擊登錄,進行提交</p> <script type="text/javascript"> function display_alert() { alert("請關注 測試-安靜!") } </script> </head> <body> <input hidden="hidden" id="anjing_test" type="button" onclick="display_alert()" value="隱藏按鈕" /> </body> </html>
我們可以進行通過打開看看前端是什么樣子,添加的按鈕是否可見

通過上圖可以清楚的看到,用戶名的輸入框和按鈕都是看不到的。我們通過前面介紹的JS語法方法進行完成點擊操作
from selenium import webdriver import time driver = webdriver.Chrome() driver.get(r'E:/web/123.html') # JS語法 js = "document.getElementById('anjing_test').click()" time.sleep(3) # 點擊操作 driver.execute_script(js)

通過展示的動圖可以看到,我們已經完成了成功點擊隱藏按鈕。
輸入操作
大家都知道,隱藏元素是無法看到的,那么輸入的操作內容肯定是看不到結果的,就算我們完成了輸入,一樣看不到結果。不過如果我們先進行輸入,然后通過js把隱藏的屬性進行刪除,那么我們就能看到是否成功輸入了。繼續使用前面的代碼段,然后進行編寫代碼
from selenium import webdriver import time driver = webdriver.Chrome() driver.get(r'E:/web/123.html') time.sleep(1) # JS語法輸入內容 js = "document.getElementById('anjing').value='anjing'" # 執行隱藏用戶名進行輸入 driver.execute_script(js) time.sleep(3) # JS語法刪除hidden屬性 js2 = 'document.getElementById("anjing").removeAttribute("hidden")' # 執行JS語法 driver.execute_script(js2)

通過上面的動圖可以看到,等到輸入框出現的那一瞬間,我們剛才的輸入也成功的顯示出來了。
這個可能在工作過程中用到的極少,但是面試的時候缺問的很多,比如:如何操作隱藏的元素。那么這次就可以理直氣壯的告訴面試官,可以通過JS語法進行強制性操作。
感謝大家的閱讀,如果您喜歡安靜的作品,可以點個關注,持續更新。
