selenium---操作隱藏元素


  前面介紹了如何判斷元素是否可見,了解到了隱藏元素的屬性值,以及如何判斷隱藏元素,那么今天安靜介紹下如何操作隱藏元素。

隱藏元素

安靜先帶大家回顧下隱藏元素是什么,隱藏元素是通過屬性值 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語法進行強制性操作。

 

感謝大家的閱讀,如果您喜歡安靜的作品,可以點個關注,持續更新。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM