python之selenium操作隱藏元素


 
 
getElementsByTagName
 
GetElementsByTagName
Fast traslate
Icon translate

一、html顯示與隱藏元素的幾種方法

1、display

  • none:隱藏元素
  • block:顯示為塊級元素
<p style='display:none;'>B元素</p>

display: none 隱藏自身元素以及它的所有后代元素 ,隱藏后的元素不占據任何空間,不影響頁面布局。

 

2、visibility

  • hidden:隱藏
  • visible:顯示
<p style='visibility:hidden;'>B元素</p>

visibility: hidden 隱藏自身元素,但隱藏后的元素空間依舊保留,仍然會影響頁面布局。

 

二、如何判斷元素是否為隱藏

1、is_displayed()

使用is_displayed()方法查看這個元素,發現返回的是False,說明該元素不可見。
driver.find_element_by_xpath("").is_displayed()

2、在瀏覽器中查看元素,檢查display和visibility的屬性值,如:



三、如何操作隱藏元素

①先定位到該元素;
②使用js語句修改屬性,將隱藏屬性修改為顯示。

PS:隱藏元素是仍可定位的,只是操作稍微復雜些。
js = 'document.querySelectorAll("select")[0].style.display="block";'
driver.execute_script(js)

js = "document.getElementsByClassName('')[0].style.display='block'"  
driver.execute_script(js) js
= 'document.querySelectorAll("select")[0].style.display="block";' driver.execute_script(js) js = "document.querySelector('ul.sub-link li:nth-child(2)').click()" driver.execute_script(js)

 

四、如何想富文本編輯器輸入內容?

最近在做項目的web后台自動化時,遇到富文本編輯器(php框架自帶),通過以下方式,成功定位到該編輯器並輸入內容:

(1)首先定位到最外面的iframe框架

(2)進入iframe框架

(3)定位輸入框寫入內容

(4)退出該iframe框架

先定位外層的元素,由外至內。

class A():
    iframe = pmanage.get_iframe    # 定位該iframe框架
    base.switch_to_iframe(iframe)    # 切換進入該iframe
    ecomon.get_name.send_keys("四大名著")    # 寫入內容
    base.switch_to_parent()    # 返回父目錄

 

附:

1、JS查找HTML元素的常用方法

(1)通過id查找HTML元素
document.getElementById(“some id”);


(2)通過標簽名查找HTML元素
document.getElementsByTagName(“some tageName”);


(3)通過類名查找HTML元素
document.getElementsByClassName(“some className”);


(4)通過css選擇器查找HTML元素
document.querySelector(“css表達式”);

 

2、JS操作HTML元素的常用方法
(1)點擊操作click()
document.getElementById(“some id”).click()


(2)獲取元素文本信息textContent
document.getElementById(“some id”).textContent


(3)改變某個元素的屬性值
document.getElementById(“some id”).attribute=new value;
可以通過瀏覽器的控制台驗證JS

 

參考:https://blog.csdn.net/weixin_44169484/article/details/106173602

參考:https://blog.csdn.net/qq_21046965/article/details/83792660


免責聲明!

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



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