Python 3、selenium/執行js命令顯示隱藏元素,封裝js工具類

爲什麼需要js?

我們需要執行函數,但是實現成本很高或很難甚至無法實現事件的時候,可以直接通過js命令調用

頁面上有些元素無點擊事件,不可點擊等,調用js直接實現效果即可

還有種種原因導致,沒達到我們想要的效果。

使用js是一種途徑(方法)

1.添加 webdriver依賴

from selenium import webdriver

2.編寫js命令,存儲爲字符串形式

# js = "document.getElementsByClassName(\"" + className + "\")[0].style.display='block';"
js = "document.getElementsByClassName(hhidden)[0].style.display='block';"  #根據ClassName尋找,注意ELements
js = "document.getElementsById(name)[0].style.display='block';"  #根據Id

3.執行js命令

driver = webdriver.Chrome()  # 獲取Chrome驅動
driver.execute_script(js)  # 執行js

4.完整代碼

# -- coding:utf-8 --

from selenium import webdriver

driver = webdriver.Chrome()
js = "document.getElementsByClassName(hhidden)[0].style.display='block';"
driver.execute_script(js)

5.只作爲腳本執行

# -- coding:utf-8 --

from selenium import webdriver

def run():
    driver = webdriver.Chrome()
    js = "document.getElementsByClassName(hhidden)[0].style.display='block';"
    driver.execute_script(js)

if __name__ == '__main__':
    run()

6.封裝成工具

# -- coding:utf-8 --


class jsUtil:
    """生成js語句的工具"""

    def __init__(self):
        """實例化js工具"""
        self.index = 0

    def displayFormClass(self, className, index=None):
        """返回將class的隱藏元素顯示出來的js語句"""
        js = "document.getElementsByClassName(\"" + className + "\")["
        if index != None:
            js = js + str(index)
        else:
            js = js + str(self.index)
        js = js  + "].style.display='block';"

        return js

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章