前面介紹瞭如何判斷元素是否可見,瞭解到了隱藏元素的屬性值,以及如何判斷隱藏元素,那麼今天安靜介紹下如何操做隱藏元素。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
感謝你們的閱讀,若是您喜歡安靜的做品,能夠點個關注,持續更新。