Selenium操作隱藏的元素及問題解決方案
在工作中我們會遇到一些隱藏的元素,那么selenium就會無法操作這些元素了,例如像這樣:
我試著像以前操作一樣,寫了代碼,操作之后報錯:selenium.common.exceptions.NoSuchElementException: Message: Could not locate element with visible text: male
解決方法:
我們可以通過js來使元素可見,代碼如下:
# document.querySelectorAll("select") 選擇所有的select。 # [1] 指定這一組標簽里的第2個。 # style.display="block"; 修改樣式的display="block" ,表示可見。 js = 'document.querySelectorAll("select")[1].style.display="block";' driver.execute_script(js)
再舉一個例子,該例子是輸入框隱藏了;具體HTML如下:
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>Checkbox</title> <script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <link rel="external nofollow" rel="stylesheet" /> <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> </head> <title>定位演示</title> <script> function gettext(){ var url = document.getElementById("urlAdd").value; window.location.href=url; } </script> <body> 請輸入網(wǎng)站:<input style="display:none" type="text" id="urlAdd" /> <button οnclick="gettext()" id= "ok" >跳轉</button> </body> </html>
python實現(xiàn)方式一:
# 1. 確定js js = "document.getElementById('urlAdd').value = 'https://baike.baidu.com/'" # 2. 執(zhí)行js driver.execute_script(js) # 點擊跳轉 driver.find_element_by_id("ok").click() time.sleep(5)
python實現(xiàn)方法二:
# 1. 確定js js = 'document.getElementById("urlAdd").style.display="block";' # 2. 執(zhí)行js driver.execute_script(js) driver.find_element_by_id("urlAdd").send_keys("https://www.baidu.com") # 點擊跳轉 driver.find_element_by_id("ok").click() time.sleep(5)
假如面試官問我們如何定位隱藏元素以及如何操作?
回答:定位元素的話,直接用普通的定位方法即可,只是在操作元素上有些差異,需要用js去進行操作。
到此這篇關于Selenium操作隱藏的元素的文章就介紹到這了,更多相關Selenium操作隱藏的元素內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python利用 pytesseract快速識別提取圖片中的文字((圖片識別)
本文介紹了tesseract的python調用,也就是pytesseract庫,其中還有一些其他的內容并沒有涉及,僅涉及到了圖片提取文字,如果你對其感興趣,可以深入探索一下,也希望能和我探討一下2022-11-11Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實例
今天小編就為大家分享一篇Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05