selenium---操做隱藏元素

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

隱藏元素

安靜先帶你們回顧下隱藏元素是什麼,隱藏元素是經過屬性值 hidden="hidden"  進行隱藏,若是前端代碼中出現這個,就表明該元素已經被隱藏了,你們也知道,若是元素隱藏了,是沒有辦法進行操做的,所謂的操做就是輸入,點擊,以及清空這些基本元素操做。若是經過selenium中的點擊進行操做元素的話,會報錯誤,沒有找到元素信息,前面也介紹了,隱藏的元素只能定位到,可是沒有辦法進行操做。具體的詳情見selenium---判斷元素是否可見。今天安靜介紹一個小小的方法來幫助咱們進行操做這些元素html

操做隱藏元素

你們也都知道selenium操做方法是經過模擬人的操做方法進行的,那麼元素都看不到了,就沒有所謂的操做不操做了,若是真的想要操做,咱們可使用JS語法進行操做(selenium---經過JS語法操做頁面元素),由於JS語法屬於直接對前端的代碼進行操做,代碼是在的,隱藏元素主要是對於前端頁面來講是不可見的。前端

點擊操做

這裏安靜那上次的代碼進行添加了隱藏的按鈕,點擊這個隱藏按鈕會出現一個彈出框。經過下面的代碼能夠看出,用戶名和按鈕是經過hidden屬性進行隱藏的。java

<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>

咱們能夠進行經過打開看看前端是什麼樣子,添加的按鈕是否可見web

經過上圖能夠清楚的看到,用戶名的輸入框和按鈕都是看不到的。咱們經過前面介紹的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)

經過展現的動圖能夠看到,咱們已經完成了成功點擊隱藏按鈕。post

輸入操做

你們都知道,隱藏元素是沒法看到的,那麼輸入的操做內容確定是看不到結果的,就算咱們完成了輸入,同樣看不到結果。不過若是咱們先進行輸入,而後經過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)

經過上面的動圖能夠看到,等到輸入框出現的那一瞬間,咱們剛纔的輸入也成功的顯示出來了。url

 

這個可能在工做過程當中用到的極少,可是面試的時候缺問的不少,好比:如何操做隱藏的元素。那麼此次就能夠義正詞嚴的告訴面試官,能夠經過JS語法進行強制性操做。spa

 

感謝你們的閱讀,若是您喜歡安靜的做品,能夠點個關注,持續更新。

相關文章
相關標籤/搜索